Refs #66, adds database transactions to models.

Subclasses PDO object as NestedPDO, so functions don't have to worry about calling other functions
that use database transactions. There is still more to do, because constructors don't use transactions,
since they can't return false or null to tell the caller function that the callee function failed.
For this, exceptions need to be implemented and try-catch blocks used when calling model constructors
that might fail.