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
This should be updated to `this.start.bind(this)` to keep correct context.