rename and (almost) implement `thTypeToType' (was `thToType')

* Also implement and add `thCxtToCxt' to export list
Slightly change the representation of some types and add some Lift instances
fix import list
add convenience functions for `ClassEnv's, `Type's and `Cxt's
add TemplateHaskell language pragma
documentation typo
Refactor the TH module according to the API suggestion