enhanced formatting and improved api
added copyright notice to files needing it
Now compatible with both python 2 and 3.

It turns out that in python 2, the module search path is augmented
once a package has been loaded.  Whereas in python 3 this does not
happen.  So when relative imports weren't needed in python 2 (because
of the augmented path) they were still needed in python 3.

So all the import statements have been adjusted to behave as relative
imports now.