Topic/location module

This adds a location module and objects for data loading and locations.

Decided to submit a pull request for this now so that Andrew and I can split up work on this.