use bundler to install the gems needed to run the tests
separate off an error message function that doesn't need to do the database-specific quoting
make pack_raw, pack_raw_length, pack_array_length, and pack_map_length non-member template functions to make it possible to specialise them
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.
remove peek, next_nil, and next_is_nil methods, won't be needed in this branch
use the packed msgpack byte streams as the in-memory representation of column values, instead of strings
use the packed msgpack byte streams as the in-memory representation of key values, instead of strings.  refactor to use the database-specific quoting methods instead of a hardcoded standard version.
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
tidy interface to PackedValue