Crypto key refactor
Replace key handling with a JS implementation that converts keys to standard
JWK Key format. Streamlines the Crypto.ts API and removes the various formats
and hacks we previously used to pass keys to Node's OpenSSL wrapper.
fixes #212
could be considered phase 1 of #122