Text[Marshaler|Unmarshaler] support

This add two functions that allow encoders like JSON to encode and decode multihashes.
The receiver type is a pointer because encoders cannot change the size of a bare slice.

I chose to use hex encoding because it was significantly faster than base58.