Decouple ValidationResult from HTTP status codes and response messages.

- Validation results now just deal with:
  - Success
  - Failure
  - Failure message

It makes testing a bit easier, as the validation message is now accessible directly, rather than via the HttpResponse message.