Added a bunch of tests and refactored some stuff

I've introduced some (more to come) test cases which will allow us
to ensure the ProtoBuf->Docker logic is sound as we add new features.
Added a travis.yml