API documentation

* Add API documentation for Client namespace, and items in the Core namespace which are used within the Client namespace
* Add argument validation in some obvious cases
* Fixes a bug where the retry delay was ignored in `RequestRetryLogic.Execute`

Note that the documentation will need to be updated to include the answer to question #25.