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
Reformulate Optional around primitive `pextract`.
Merge branch 'topic/optional' into scalaz-seven

Based on pull request #411 and subsequent tweaks by @S11001001.