Refactor to be more 'pythonic'
The existing code structure is what happens when a kernel developer
tries to write python code: something that works but isn't very portable.
This shuffles files around to be in a more standard python project format.
It also includes a proper license and a setup.py file for better
packaging.