Port of Data.Map to scalaz

This is a port of Haskell's Data.Map into scalaz. There are a few things
that need to be considered regarding the usage of sys.error (as per the
implementation in Haskell. It would be advantageous to have all functions
total.

Additionally there are some functions that might still be required, but
the majority of the useful functions have been provided. Feedback is
greatly appreciated.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Don't mix context bounds and implicit params for 2.9.x

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Correct a typo resulting in switched partitioning.

Thanks to @xuwei-k for pointing this out. Added additional tests to check this
more thoroughly.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Added mapOption and mapEither functions.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Merge pull request #418 from gpampara/map

Port of Data.Map to scalaz