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.

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)
Here and elsewhere I use dataSets['name'] because I think that it makes it more clear it's being used as an associative array, however, we never use this notation in our actual project because JSHint warns against it. Because this only appears in our generated code JSHint won't complain, but do we mind this notation in our exported code? We could use dataSets.name, but that doesn't seem intuitive to me.