Add .gitignore
Add unit testing harness + basic factory tests
CS fixes
Add Travis-CI and Scrutinizer-CI