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.
what if I want to set the option to `"empty value"` ? 

the empty string already exists, let's not recreate it. `Could not convert value '' to type 'foo'` is ok. 

(and ideally always have quotes when signaling invalid string values. i.e. `Could not convert value '' to type 'foo'` does this. `Could not convert empty value to type 'foo'` does not.)