Rename header to adopt more boost-like style.
Construct byte_array from an asio::buffer.
Extract working code back into headers.

Can define and read variable sized fields properly.
Add rest_t type to test code.