Refactored server app to use a global config object that provides various services via promises, removing the problem of circular dependencies and initialization order.
Added API for app sessions (see README.md for API docs).
A websocket is used to receive app session updates.
Uses SQL database for storing session data.
Includes functional tests for starting an app session, making changes, and getting results via the websocket.
Fixes #246