node.js crypto: Changed HMAC and Hash params to `any`

1. `createHmac` also accepts Buffers as the `key` param, not only strings
2. `Hmac.digest` and `Hash.digest` both return a Buffer object, if no encoding is specified, so also not just strings.

Docs:
http://nodejs.org/api/crypto.html

Additionally, I moved the `createDecipher` functions out of the Cipher interface, as these functions lie directly on the crypto-module.