tidy up LocationIndex
 Fix: list multiple locations with same name and path

In the current tree there are cases of different locations but same name, located in the same region.
The selector's behaviour until now was to ignore one of them.

We are now listing both, even though there is no way in the UI to tell one from another.
tidy up location index
 #36: Reduced memory footprint of location parsing process

Changes:
 - Use low level stream json parser (jackson)
 - Avoid loading the whole contents of the location file as a string
 - Fixed leaked memory after index was built

Baseline:
  - after reading file: 66 MB
  - after parsing: 130 MB
  - after parsing+GC: 129MB

After changes:
  - after initializing stream: 4 MB
  - after parsing: 14 MB
  - after parsing+GC: 10 MB

We still need more memory to display the selector in the UI and build the index. After tests the application showed to behave well with ~60 Mb of memory.
It still didn't crash with 50 MB but it caused the VM to incurr in a lot of garbage collection.