Fix Setup

This patch fixes the project up a little nicer

* Setuptools
    * Package all libraries together
    * Find the appropriate path for packages

* Tests
    * Move them to the root of the project
    * Link to tests in setuptools
    * Use unittest for better setup and cleaner, more supported unittests
    * Can run tests using `./setup.py test`

I will follow up with a config file to allow continuous package testing using travis