Api request interface

This completes the implementation outlined in #20 for splitting the fluent interface and transitioning to a new interface for request construction.  

Note, a trade off is that you now have to hang on to the request (which is not threadsafe) if you want to get the EndpointUrl for a request.

 #53 **must be merged first**