clean up parsing: don't copy structure and parse twice

instead implement geo point parsing of foramt [number, number] explicitely
Lists.newArrayList(points) -> Arrays.asList(points)
make sort work with arbitrary mixed geo_points formats
cleanuo imports and naming consistency