Adds unit test framework
Improves unit tests
Puts each test in its file
Adds .travis.yml