Better Type Mapping

I redesigned the type mappers to be more like the natural language
syntax used by Entity Framework Code First. This method has better type
safety and full support for reader/writing features.