replace Applicative[JsResult] by a more generic Applicative[Validation]
Add Hashcode to Validation implementations
Replace Alternative[JsResult] by Alternative[Validation]