support merging time series

By converting time series vectors to maps with explicit dates for each period, we can robustly merge time series. The relevant functions (`merge-ts` and `ts-map->ts-vec`) can check for and and flag (via an exception) overlapping time series, and check for and flag (via exception) or fill in holes in time series with a nodata value.