rename a variable to avoid confusion with a similarly-named instance variable on one of the classes used
make the database-row serialization methods member functions.  this is undesirable, but otherwise there'll be ambiguous << operator implementations in later commits as this operator << is templated on the packer type and the forthcoming method has an explicit packer type but is templated on the object to pack.
use the packed msgpack byte streams as the in-memory representation of column values, instead of strings
remove an unnecessary class/temporary variable
remove peek, next_nil, and next_is_nil methods, no longer used and won't be needed again after this branch goes in
use the packed msgpack byte streams as the in-memory representation of key values, instead of strings
decode postgresql bytea strings before hashing or sending in response to a rows command; decode booleans and pack as msgpack boolean type for portability. add spec coverage for both.
pack integer columns as integer types
use allocated byte buffers instead of vectors for PackedValue, wins back about 20% of the performance loss on this branch