[Schedule] Use TH to auto-generate some defintions

Using TH, we can automagically generate:
- the "real" Ixed/Contains instances from the fake ones in
AtSansFunctor.hs [genIxedInstances]
- the IxValue and Index type families for modifiers [genIxedFamilies]
- the Typeable instances [genTypeable]

If you want all of these, you can use makeModifier
[Schedule] Add the Annotate modifier

The annotate modifier allows you to attach additional information that
you want to store besides the modifiers in the tree. For example, you
could use it to have a "flag" that tells whether the annotated modifier
belongs to the initial schedule or not.