Fix crash when passing invalid hex strings to cipher.update or decipher.update

Passing invalid hex strings to `cipher.update` or `decipher.update` made node crash. Here is a demo:

```
Freyr:jolimerdier pierre$ node
> require('crypto').createDecipher('aes-256-cbc', 'foo').update('000', 'hex');
Assertion failed: (str->Length() % 2 == 0 && "invalid hex string length"), function StorageSize, file ../src/string_bytes.cc, line 301.
Abort trap: 6
Freyr:jolimerdier pierre$ node -v
v0.10.12
```

This has been tested on both Linux and Mac environments.
A simple workaround is to use `update(Buffer(somevar, 'hex'))` instead of `update(somevar, 'hex')`.

This pull request fixes the crash, and makes this throw a TypeError instead.