(TK-27) Dry up use of defaults

Dry up use of defaults. Now, the second signature of the
request function will pass in nil for the client argument
in the third signature, which will create a default client if no
client was provided.
(TK-27) Add request-with-client functions

Add request-with-client functions to the async and sync
namespaces. These now do all the work of the request functions,
so that the request functions cannot directly be passed a client
by the user.