Added separated locations files

See #9
Lazy-load locations from separated jsons

When they are required, the application only loads the first two
levels of locations, and then it gets their children on demand.

This reduces the app's memory footprint by ~150MB.

Fixes #9