Merge Topic/package

We haven't changed much / anything of substance here, this is just restructuring the modules into package/distribution form (adding __init__.py files, etc).