no cross-table pk name clashes anymore
better setup of rethinkdb indexes
much improved get_missing_books; also allow filter by md5 hashes
pyflakes fix
output improved dict from update_library
update client's books with ogre_id
removed old supervisor pip.install reqs
updated dev & prod pillar vars
ogre_id now stored as identifier; updated whenever missing by ogreserver
removed old SDB cruft
updated pip reqs; dropped unnecessary socketio lib
cleanup old test cruft
relative import in ogreserver
better exceptions in ogreserver
requirements.txt for testing
use raw sqlalchemy, not Flask adapter
user no longer a member var of DataStore
major refactor of app to support testing
new ogreserver.run entry point
decoupled DataStore from the Flask app