Adds better support for validation of optional fields.

Adds "validateOptional" function. Its purpose is to be used in
conjuction with forms of the form: "Form v m (Maybe a)" e.g.
"optionalText" and "optionalString", so validators of the form (a -> Result v b)
can easily be chained. Internally, it uses the forOptional combinator.