JZ: Fix failing test `test_nested_geo_paths_csv`
JZ: Fix failing test `test_nested_geo_paths_csv`

The test failed in the previous commit when we passed a `location_data`
dict with missing keys to `str.format()`.
To address this, I used `collections.defaultdict` to return empty
strings for missing key-values.
However, `str.format()` doesn't like seem to play ball with defaultdict
so I went the old school % operator which works well.

After solving that, I found that for for nested row dicts some sort
of traversal would need to be done to locate the appropriate nested
dicts where the geopoint field should be inserted. This was sorted
with the help of `reduce()`

spatialdev/onadata,piqoni/onadata,qlands/onadata,GeoODK/onadata,sounay/flaminggo-test,qlands/onadata,spatialdev/onadata,sounay/flaminggo-test,sounay/flaminggo-test,smn/onadata,hnjamba/onaclone,qlands/onadata,hnjamba/onaclone,piqoni/onadata,piqoni/onadata,spatialdev/onadata,smn/onadata,smn/onadata,spatialdev/onadata,GeoODK/onadata,smn/onadata,piqoni/onadata,GeoODK/onadata,hnjamba/onaclone,sounay/flaminggo-test,hnjamba/onaclone,GeoODK/onadata,qlands/onadata