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.
Should probably relocate this to exceptions.py.