Continuation monad and generalizations, take 2

This pull request implements the indexed multi-continuation monad transformer `IndexedContsT`, as well as providing type synonyms for common specializations.

Unfortunately, I was unable to provide a `MonadTrans` instance and still maintain variance in the type parameters, and a `Hoist` instance is completely out of the question. `liftM` is, at least, implemented with the necessary additional variance annotations in `IndexedContsTFunctions`.

This is a redo of #302.