Sqlalchemy

Merge sqlalchemy changes in preparation to extract gui from main pythoncad code. This will allow multiple user interfaces to share a single 'pythoncad' package to manage objects, layers, constraints, etc.

Default ui will move to pythoncad-qt for use with PyQt/PySide.

Other options will be looked at in the future.