Redesign types + introduce TypeRegistry & TypeResolver

Description

Work in progress. The general idea is to have 3 levels of types:
1) What I am tentatively calling a StaticType. These are basic mappings between standard java types and basic sql types. They require no access to a Session nor SessionFactory to fulfill their contracts.
2) Scoped. This is mainly the current Type contract, except that these will be explicitly scoped to a TypeRegistry (which is part of the Configuration and SessionFactory). Users can provide overrides of these.
3) User types. Again, mainly the current user types contracts.

Environment

None

Status

Assignee

Steve Ebersole

Reporter

Steve Ebersole

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Major
Configure