wrap os.remove inside config.remove
setup.py - code cleanup
Refactor of unit tests

Unit tests have now been refactored to be more clean
and more reliably run new tests without manually adding them
to a test suite.

Any unit tests created should go in a file called test_* which
is more in line with python practices.

For backwards compatibility you there is still a test.py which can be run
from the command line

Please travis, don't break :)