Allow user to specify column types

Clean up existing code a bit as well
Merge pull request #497 from JuliaStats/jmw/typedio

Allow user to specify column types