src: Add StringBytes static util class

Four functions:

- StringBytes::SizeFast()
- StringBytes::SizePrecise()
- StringBytes::Write()
- StringBytes::Encode()
src: add StringBytes::Encode() function
src: Use StringBytes in StreamWrap
src: lint stream_wrap.cc

src: Use StringBytes in StreamWrap

revert stream wrap changes (different approach coming)
buffer: DRY string decoding using StringBytes
src: Use StringBytes for DecodeWrite/DecodeBytes
src: use StringBytes::Encode in node::Encode()

This makes node::Encode actually work properly with base64,
ucs2, hex, etc.
crypto: Pass strings to binding layer directly
buffer: Use StringBytes::Encode
buffer: templatize the StringSlice functions
crypto: use StringBytes::Encode in HashDigest
crypto: Pass encodings to C++ for Sign/Verify
crypto: Pass encodings for Hmac digest