Add missing dependencies.
Remove monkey patching.
Update dependencies and add tests_require.
Update .gitignore.
Add bootstrap.py.
Add simple tests. Tidy up class/module naming.