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>