Make `ValidationFlatMap.self` public to avoid issues with inlining.

Without this one might get compilation error saying that the field is not accessible, it's because in situation where the method call got inlined the generate closure refer to `self`.
Merge pull request #779 from aloiscochard/patch-1

Make `ValidationFlatMap.self` public to avoid issues with inlining.
Scala 2.11.2
`Monoid[Option[A]@@{Min | Max}]` should ignore `zero`(`None`).

Some tests(monoid laws and test for none) were added.
use type aliases in OptionTest
`Monoid[Maybe[A]@@{Min | Max}]` should ignore `zero`(`None`).

Some tests(monoid laws and test for empty) were added.
use type aliases in MaybeTest