Big restructure. Details: See commit description

This commit adds i and v parameters to all modifiers. This allows use to
have Functor, Bifunctor and Profunctor instances for Modifiers, which
open a whole new range of opportunities. Also, the schedule type
is moved to the front of the parameters of Schedule.