test the buffer behavior of varint

It should be possible to create two different varint buffers that have the same
number representation.
allow reading 0 bytes
sighash

This is the hash of a transaction that is used for signing and verifying
transactions.

https://en.bitcoin.it/wiki/OP_CHECKSIG