AnyOf/Enum types (MooX::Types::MooseLike::Base 0.19)

Making use of the AnyOf and Enum types provided by
MooX::Types::MooseLike::Base. Note the API for AnyOf was just updated
for non-string/parameterized
In prog refactor to pre/post hook structure (changed 'insert')

In the progress of refactoring into a structure that can hook into
individual changes both before and after it is called. Converted over
'insert' hooks into new flow. This has no meaningful effect on the
front-end API yet, but it will allow for pre/post datapoint hooks to be
written into the structure to follow...

Note that the implementations in this commit are still preliminary and
will probably be simplified once the demo implementation is working
Added first complex inspection test using 'is_deeply'
more pre/post hook refactoring (changed 'update')

Also more generalizations and improvements
Convered 'delete' to pre/post structure + cleanup

The 'delete' action now hooks into the newly refactored structure for
pre/post logic, along with insert and update which were already done.
Removed old code now no longer in use
REFACTORED transaction and exception handling

Revamped the transation handling code to properly handle nested
transactions and improved excpetion cleanup. No longer hooking into
'txn_do' at all - everything is now handled with hooks into the
following Storage methods:

 * txn_begin
 * txn_commit
 * txn_rollback

Also added first test cases actually using transactions via both txn_do
and txn_begin/txn_commit.

Additionally, insert/update/delete calls are now wrapped in try/catch
with explicit cleanup calls sent to the auditors before rethrow (even
though the design technically doesn't need to worry about exceptions in
these places, it doesn't hurt and is a failsafe for codepaths I might
not be properly thinking about)

TODO: Still need to write test cases to verify the sanity of related
exception handling