Handle any mapped types returned by jdbc

The most significant change is the theoretically correcting shift from
scala.reflect.runtime.universe.Type to (c: scala.reflect.macros.Context).Type.
That is, sqltyped must reason about runtime types (determined by macro context)
rather than compile-time types (determined by runtime reflection) as these are
the types that will handle marshaling (even though they may often be the same
in practice).

Unfortunately, doing this correctly would have required parameterizing all Type
values by the macro context, which would be very messy, so I've used
Context#Type instead of context.Type, and dynamically cast back as necessary.

The end result is that mkType can now return (and verify) whatever Type
corresponds to the mapping column class, even if it sqltyped doesn't know about
it.