Big refactoring of IxMonad into various subclasses.

This refactors IxMonad into various fine-grained subclasses, defined a
bit more rigorously than the original Prelude. Now we have IxFunctor,
IxPointed, IxApplicative, and IxMonad. I'm trying to keep them
lightweight.

I may provide indexed transformers in the future. I'm not sure if this
will get split off into another package (although I'd prefer not to have
that happen for now.)

Also update copyright year. Hooray!

Signed-off-by: Austin Seipp <mad.one@gmail.com>