First sketch of an AbstractType

* Define AbstractType with some basic conversion to primitive form
* Include hooks for converting non-primitive teams via simple methods
* Define AnyType(AbstractType), that validates values of any primitive type
* Define SimpleValueType(AbstractType), that validates values of any simple (non-compound) primitive type
Rename new base-types to reflect primitive types
Document the creation of custom types