Refactor the typecasting behavior of ActiveRecord columns

This removes all cases from `Column` where behavior was determined soley
based on the SQL type string. Instead, we push this decision up to the
Column's creation, and inject the object with knowledge of the type
casting behavior of it.

The API exposed was intended to be close to the PostgreSQL
implementation for OID lookups. There's additional refactoring that
could be done on this, especially in the PostgreSQL adapter and MySQL
adapter, but this felt like a good place to cut it off, as the pull
request was getting quite large.