Better session_factory singleton.
We had conflicts between existing singleton in lib.sqla and the one created in tests, which created test failures.
Tests can run with or without ZopeTransactionExtension. (This may not be maintained.)
Reinstate BaseOps. This allows to have access to db as a class attributes for all models.
Remove assembl.db which was giving yet another entry point for the singleton.
Use transaction.commit more systematically.
Move code around to avoid implicit import of models, which now create the session_factory implicitly
(through an optimization of classproperty on BaseOps by sqlalchemy.)
Installed a few mark_changed, but this is still ad hoc, and has to be understood better.