nurse shark, first draft

Open for feedback, but *not* for merge. I'll be working on this branch as well to update the viz code for the new data model.

The only things you can test here presently are validation with the node script `dev/validate-with-timing.js` and the tests for nurse shark, `test/nurseshark_test.js`. The visualization itself is broken, as expected.

@cheddar I added a couple of things that were missing to the schematron, as per my comment on the Trello card.
Yes, this script is used to generate the demo data, but no, not everyone can run it. Since the way it generates realistic-looking CGM data is by stitching together actual continuous segments of data from (at the moment) two+ years of my data (at one point I was going to mix in some other sources of data, but I never got around to doing that), it depends on the availability of an 'indexed-segments.json' file that is not checked into the repository.

@nicolashery has pointed out before that the tideline repo has gotten quite large because of the checking in of device data (at one point I also had files with more than 30 days demo data too). That's my bad, but there's not much we can do about that now, although now I try hard to only check in new demo data when I'm pretty sure I've made all the adjustments that need to change for a while.

In the long term, I think eventually we may want to create a new tideline repo (and rename the old one to tideline-archive or something) after using `git filter-branch` to rewrite history and remove all the checked in demo data. We can generalize the [blip-mock-data](https://github.com/tidepool-org/blip-mock-data) repo so that tideline can depend on it as well for demo data. But all that is, IMO, long-term.