Small changes to implicit HTTP responses

UserErrors are now converted to a BadRequest, and still contain a JSON
object containing details of the error.  This means, for instance, that
signing up without an email will result in a BadRequest({ error: 'Email
cannot be empty' }) rather than Ok({ error: 'Email cannot be empty' })

ResultConversions can now convert Ref[JsValue], RefMany[JsValue], and
Ref[T : WritesRJ].  This lets us lose a little more boilerplate from
controller actions.