Big refactor and reorganisation for 0.2.
Update .travis.yml and setup.py