Adding tests and minor tidy-ups

These changes add a test suite to the project and tidy up some issues found by pylint.  I've added a makefile (as is my habit) which is able to run the test suite (using nosetests) and is able to determine code coverage information.   I've also added some questions to the methods as it's not 100% clear what everything does and as soon as some things are cleared up then the tests can be improved.
Docstrings have also been added to all methods, classes and modules.