crypto: multiple webcrypto fixes
While working on updating WPTs (#43421 put on hold) I have found the following issues.
- digest() invalid algorithm which happens to collide with other
normalizeHashName
names was accepted - empty usages in generateKey() were accepted
- generateKey() publicExponent was not used
- deriveBits() ECDH / X25519 / X448 returned incorrect slice when non multiple of 8 length was requested
- generateKey() AES-KW accepted invalid usages
Review individual commits