'SessionPreCommitChecker.id_collections'

Add 'SessionPreCommitChecker.id_collections' dictionary class attribute.
'SetupManager' methods can add collections to this dictionary that will
be instantiated for each 'DBSession' instance.
'PreCommitChecker' tests

Add 'test_session' module. Contains test for 'SessionPreCommitChecker'
class.

Remove unused code from 'tests.util'.
Invalid parent/child tests

Add tests for 'invalid parent / child' behavior. Setting a parent or
child of an invalid type raises an exception.

Add 'RelatedObjectError' exception class.
Reject invalid related objects

'MultiClassChild' and 'MultiClassChildren' reject parent/child values of
invalid types.
'MultiClassParent' pre-commit tests

Add tests to confirm that 'MultiClassParent' associated column values
are checked before commit.

Add 'ParentNotFoundError' exception class..

Remove unnecessary code from 'tests.util'.
'MultiClassParent' pre-commit check

Before 'commit', 'MultiClassParent' descriptor column attributes are
checked for validity.
'MultiClassChild' pre-commit tests

Add tests to confirm that when a parent with a 'MultiClassChild'
descriptor has multiple children, an appropriate execption is raised
before commit.

Add 'MultipleChildrenError' exception class.
'MultiClassChild' pre-commit lisetners

Implement pre-commit listeners for 'MultiClassChild' which confirm that
multiple children are not assigned to a single parent.
'Multiple parents, same ID' test

Add test to confirm that when multiple parents have the same ID, but
each is of a different class, a child only belongs to a single parent.
Multiple parents, same id

Implement feature which prevents multiple parents (of different classes)
with the same ID value from claiming a single child. This is
accomplished by filtering on the '..._tablename' column value when
querying for children.
Remove 'NodeParentError'

Remove 'NodeParentError' and method which previously would check for
'NodeLike' objects' 'parent'. This code was no longer in use.
Move exception classes

Move exception classes to 'lacodapublictools.sqlalchemy' module. All of
the exceptions have to do specifically with that module, so it seems
appropriate for them to reside there.
Remove 'exceptions' module

Remove 'exceptions' module, which was empty.
'tests.database.model' naming

Simplify naming in 'tests.database.model' module.
'MonoClassChild...'

Replace 'MultiClassChild', 'MultiClassChildren' with 'MonoClassChild',
'MonoClassChildren' everywhere. These names are more descriptive.
'sqlatools.py'

Rename 'lcdapublictools.sqlalchemy' module to 'sqlatools'.
'sqlatools' everywhere

Replace 'lcdapublictools.sqlalchemy' with 'lcdapublictools.sqlatools'
everywhere.