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.