Package reorganization and linting

Cleans up the package hierarchy so that it resembles the URL structure
as much as possible and so that the data module may be available in the
future to some sort of backends package.