adds optional conversion

don't like the control flow with the KeyError, but want to preserve the
original intent of using Hash#fetch for strict typing in postgres to
mysql type conversion.

changing in prep for allowing optional conversions on a per-column basis
to support custom data types in postgres (mint has a custom
mint_squareup_status enum).
uses table plan objects and not strings

nicest way to support custom types on a per column basis. define a
default_conversions hash of column name to enforced type when creating
a table_plan.
corrects dropping of prefix

in a load that needs to check the existence of the prefixed target
table, was mistakenly dropping the prefix in the previous commit.
drops whitespace
refactors hash into constant
fixes naming scheme

cast is more explicit and more active voice.
documents customized type casting options
bumps version number
uses strings as prefix default - not nil

gets rid of ternary, and is more explicit about what is expected
uses introduced variable

prefer the cast for types not found in the CASTS hash, and fall back to
trying to use the same type across dbs.
removes unnecessary variable

incremental_load_action#prefix is hardcoded to return an empty string,
so this is never actually used. that's cool.
removes "n"
Merge pull request #7 from square/da3mon-supports-custom-types

supports custom types