type class Optional[F[_]]

- abstracts over containers/contexts which may provide a value or not

- instances:
  - scala.Option
  - scalaz.LazyOption

- provides syntax.OptionalOps

- tests for all the functionality
merge branch scalaz-seven
integrate Optional into GenTypeClass
provide concrete orElse in Optional
provides nonEmpty as an alias for isDefined for Optional
provides Optional instance for scalaz.\/
provides Optional instance for LazyEither
provides Optional instance for Validation
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>
Contravariant composition, such as with Functor.
Foldable products deriving 1-ness from only one side.
Typo in ProductFoldable1L.
Traverse products deriving 1-ness from only one side.
Test foldRight, foldLeft of product.

Conflicts:
	tests/src/test/scala/scalaz/FoldableTest.scala
Fix repeated _2-injection in product foldLeft, foldRight.
_1 was ignored in product fold*1s, except foldMap1.
Tests for fold*1s on product.

Conflicts:
	tests/src/test/scala/scalaz/Foldable1Test.scala
Bad cherry.
cleanup OneOr instances. OneOrApply is unnecessary