Fix Option Validation

Resolves #349

I had moved the option validation code to happen inside `NewRequest`, but had forgotten to make it return the errors.
I understand why you're checking the response errors here, but be _very_ careful with these _late_ assertions. 

Doing this habitually may allow you to design the system to fail _late_ when we ought to design the system to fail _early_ and catch errors at the source. **Distancing the failure from the source of the error** makes the system harder to debug.