Closes #131 allowing artbitrarily nested json to be flattened into tuples and re-expanded back into nested json again

Changing baseTuplestore is part of #132.  There should probably be another commit dedicated to this.

While we are at it shoule we just use a Multimap to represent the internal data structure /w LinkedHashMultimap as the main implementation.  This makes the implementation cleaner for things such as getting all the tuples in a tuplestore.