Partial implementation of zone de-indexing

Will need to decide how to represent the null case
for schedules and other things that may or may not
be set. boost::optional? smart pointers?