Extract the starting functionality into an exported class.

closes #3789
- Create a GhostServer class to manage state
- index.js now calls start on exported state instance
- Alter tests to expect an instance of GhostServer instead of an express app
:hammer: