Add testing infrastructure

I just wanted to add a testing infrastructure so that it's easy to write tests for any new code added. Not focussed on adding tests to all the existing code. This includes configuring travis.

I've also added rubocop to ensure consistent syntax.

/cc @fosrias
Won't block on this, but prefer from the start to have rakefile just setup rake and then load tasks in a /tasks folder for the project. Let me know what you want to do on this @kylef