Added significantly more tests, and fixes required for the tests to pass.
Updated .gitignore to ignore nosetests coverage file.