Add fmap/fmap rules

Specifically, fuse map, mapWithIndex, mapWithKey, etc., with each
other.
Merge pull request #69 from treeowl/fmapfmap

Add fmap/fmap rules
Implement map/coerce for IntMap

I realized what I was doing with MIN_VERSION was kind of silly.
The easy/sane thing to do is really to use __GLASGOW_HASKELL__
for the coercion stuff.
Merge pull request #71 from treeowl/fmapcoerceintmap

Implement map/coerce for IntMap
Merge pull request #72 from treeowl/then

Optimize *> and >> for Seq