Adds findSuccess combinator to Validation

This is essentially the same as the orElse combinator, with the difference that errors are accumulated with a semigroup. I'm open to alternative naming if you've a better idea.

This changeset also changes the argument to the k combinator from A => Unit to A => Any to accomodate APIs that return something other than Unit from side-effecting calls.