Optimize unpackBinary

Optimized `unpackBinary` by reducing the memory copy in `MessageBufferInput` implementations. 

The other changes are as follows:
 * Added test cases for reading from MessageBufferInput implementations.
 * Added a test case for comparing unpackBinary performance between v06 and v07.
 * Fixed several bugs 

A performance report is in #103.