Allow passing in a custom ID
Default to un-nested objects in JSON

This makes the data simpler to analyse with Hive/Hadoop. Reading nested
JSON is possible, but non-nested is nicer.
Add shim for running with pure node