Tests and structure

Lots of changes to hopefully make the project more maintainable and easier to follow.

- Sets up Travis.
- Restructures and reorganizes a lot of the code to be more object oriented and modular.
- Builds initial test suite, tests configuration, server, and image uploader.
- Marionette client is now a roots project itself (this will soon be extracted into its own module)