first revision of sundial

Works with current uploader code, not yet modified to include needed tideline functions.

@jh-bate or @cheddar please review. @cheddar would like me to merge and tag this and have the uploader depend on it before merging the uploader branch where I've removed the moment dependency and replaced it with sundial methods.
Reading this test, it tells me that I expect that I should be able to pass in the result of `formatForStorage` into moment, get the zone from that and compare it to the offsetMins and they should line up.

That doesn't really help elucidate what this is doing.  Why not change it to just expect the exact String that we expect to get back?  That would help me as a developer to see how it transforms the data a lot better.