handle timeout and parse errors

- support timeout param in requestSpec
- proactively detect bad response formats and throw errors early
- define TimeoutError and ParseError to communicate their respective problems
- update Error docs
- remove deprecated ServiceCallError