Add ValidableResourceEngine

Add ValidableResourceEngine, NapValidationException, and unit tests under TestValidableResourceEngine to allow for server side validation errors to pass through with the correct status codes.

This code was originally written for CashStar's account_service, but was written in the Nap style and easily ported. Once merged, this new engine will be usable for other applications other than account_service.
I agree with @jacobb shouldn't there be a list or config to check status code against? It seems like 404, 403, and 409 are valid API responses that should be checked under different circumstances.