This commit adds new hash and preimage types. These types are
similar to chainhash.Hash, except for that string representations
are not reversed.
The reason for adding dedicated types and not use [32]byte, is to
facilitate logging (%v displays as hex string) and have
standard methods to convert from byte slice and string with a
length check.