Add source controller, tests.
Finalize tests, emit events on write operations.
Fix merge conflicts.
Clean-up old API file.
Merge with develop
Instantiate API as a singleton that contains an express app.
Merged with api branch
Expose mongoose to allow tests to change database.
Merge with API branch