Interleaving and Monoid instance for IterT

Addresses https://github.com/ekmett/free/issues/49
Removed `Control.MonadPlus.Free`.
Merge branch 'master' of github.com:ekmett/free
Sketch of left-associative instance for alternative, with tests
Remove trailing whitespace
Fix compilation on 7.9

This follows some Template Haskell changes made in 7.9, namely removal
of the Pred data type which is now only an alias to Type
Merge pull request #54 from Fuuzetsu/7.9fixes

Fix compilation on 7.9
Flipped implementation of free Alternative
Merge branch 'alt-left-distrib' of github.com:ekmett/free
Typeable1 fixes for older GHCs, removed trailing whitespace, shuffled
infixl declaration to the top
Add Control.Alternative.Free changes to the CHANGELOG
Add hoistF (#16)
4.6.1: Added hoistF
Use TH version CPP token instead of GHC version.
Replace rigorous definition in .cabal w/ handwave.

While it makes sense to give the rigorous definitions of (co)free
(co)monads in the documentation, the .cabal file (which contains a
high-level summary for the use of programmers trying to decide whether
or not the package is relevant to their problem) is IMHO not the place
for them. If the reader is well-versed in category theory and free
constructions, they'll say "well, yes, it's a free thing defined in the
usual way; I could work that out from the name." If they're unfamiliar
with category theory, they'll be faced with a wall of unfamiliar
terminology and left none the wiser.

This commit replaces the rigorous definitions with non-rigorous
descriptions that are hopefully more comprehensible to the
non-mathematical reader, and adds links to some of @ekmett's blog posts
on the subject.
Slight tweaks to handwave in .cabal.
cutoff for Free monad (cutoff tree at given depth)
cutoff for FreeT and FT monad transformers
prelude-extras instances for Control.Monad.Free
Merge branch 'master' of github.com:ekmett/free