setup travis

Using travis involved refactoring a lot of tests to play nicely with
plainly calling `python manage.py test`. The nose testrunner does not
rollback tests so I made a lot of changes to tests to handle duplicate
objects by either deleteing thing at the beggining of a test run.