Export data

Adds data sets, data subsets, and query actions to export. This required pulling in the latest master.

Data is not actually hooked up to anything, but should be available and accurate. This includes data subsets changing with query actions.

Query actions don't support templates (neither do property actions at this point, and trigger data hasn't been implemented yet).

~~The idea with 'subscribing' to data subset changes is that maps and such would add a call back to the data subsets ```onChange``` list.~~

Update: There are now subscribe and unsubscribe functions in the exported code. They act on the same principle as before, except it's now an associative array so that subscriptions have a key so they can be removed / overwritten. This should help for the property actions that change which datasets are used.

There's probably a bit of general cleanup and formatting needed (this seems to be the case for export in general) but it should be in a good enough state to start an initial review and hopefully good enough for someone to start using data soon.

(Second try because of Git Hub oddness)
I don't mind either way, but I think it was just for better scope, so that it can't be called on it's own (not that it really matters). Though the action one should be re-factored so that property action acts like query action, removing the need for that function in general.