add docs and cleanup data code

- simplify ParseOptions
- add lots of docs to ParseOptions and NewRequest
- cleanup some data tests

No behavioral changes.