Refactor types to be consistent with other Doctrine adapters

This includes commits from #203, rebased atop master.

Notable BC breaks:

 * Namespace change for all Type classes (`Mapping/` is removed).
 * `Type` class constructor is private, so types must be fetched via `Type::getType()` (as is done in 43432d06ca2d4f6a2b8b9eef46ade971958b3260).

/cc @l3pp4rd: Will this pose any problems for your [extensions](https://github.com/l3pp4rd/DoctrineExtensions)?