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

I see a problem with specialized signatures here. Although the docs state otherwise, one can (when looking into the crypto code), state 'buffer' as ecoding to get back a Buffer. So with specialized signatures it would have to look like this:

```
digest(encoding: 'hex'): string;
digest(encoding: 'binary'): string;
digest(encoding: 'base64'): string;
digest(encoding: 'buffer'): Buffer;
digest(encoding: string): string;
digest(): Buffer;
```

But `digest(encoding: 'buffer'): Buffer` cannot be assigned to a non-specialized signature.
When going after the docs (and leaving out the default encoding string 'buffer' from the code), it would suffice to do:

```
digest(encoding: string): string;
digest(): Buffer
```

What do you think?