3.0 - Re-add automatic UUID generation when saving records

Implement the features described in #2299. 

* Implement a new UUID abstract type, that works in reflection and schema generation. A new portable type allows the type system to be extended with a new type and features.
* I found a few small issues with SQLite type conversion and fixed those as well.

We'll need to re-visit this once cascading saves + multi-column primary keys are added.