Add AutoSavepoint database utility

Savepoints, unlike transactions, can be freely nested. They can be used
when inside a normal BEGIN/COMMIT transaction or independently, and in
the latter case will behave like a normal transaction.
WIP Event ExtraProperties