Adds SQLAlchemy as database layer.
Uses more features from SQLAlchemy.
Updates autocomplete strings and expected testcase values.
Re-structures tests.
Moves mock source to test sources.
Merge branch 'feature/sqlalchemy' into develop