Add column based type mapping.

This allowes to speed up result retrieval by directly converting
integer and float values to proper ruby types.
Don't depend on TYPE(obj)==T_DATA of a proc object for compat with rubinius.
Use instances of PG::ColumnMapping::CConverter as representation of the buildin converters instead of plain symbols. Symbol arguments are converted to these instances, for convenience.

This allows to store and retrieve additional informations to the
conversion and also which conversions are supported.
Add converter BinaryInteger.
Add Boolean ColumnMapping spec and do Integer a bit more compact.
Add convenience method PG::Result#map_types!
Add test case for default_mapping in Result#map_types!
Add test case for all value retrieving methods of PG::Result .
Change ColumnMapping#initialize to take one Array arg rather than a parameter list.

Suggested by Aaron: https://groups.google.com/d/msg/ruby-pg/PE5K6q9RzBs/M5prOno39DEJ
Add BinaryFloat converter.
Add BinaryBolean converter.

Refactor converter tests.
Use old BYTEA escaping for compat with PostgreSQL 8.4
Add compat with Ruby-1.8.7.
Add compat with Windows platform.
Add missing files to Manifest.txt.
Too less quoting. Should fix compat with PostgreSQL 8.4.
Add a (quite incomplete) default mapping of OIDs to PG::Result and allow distinct mappings for text and binary formats to Result#map_types! .

Add documentation to Result#map_types! .
WIP: Add bidiractional type mapping
more WIP: Add bidirectional type mapping
Always map NULL values to Qnil.

This removes duplicated code from type converters and will speedup converters implemented in ruby.