Improve properties of ValidationError

- change `statusCode` from 400 to 422
- nest `context` and `codes` inside `details`
- add `details.messages`
- reword the main error message

Remove the call to Error's constructor from ValidationError constructor,
because it's a no-op - Error's constructor creates a new
instance when called via `.call()`.
Merge pull request #45 from strongloop/feature/improve-validation-error-properties

Improve properties of ValidationError