Unit tests

Adds initial infrastructure for unit tests and enables automated testing on Travis CI