Logging class

Adding a class that will be used to keep track of requests that are made. 

How should this be hooked in? Should it be passed in as an optional parameter to the service adapter? I don't really like that solution because then we have a lot of optional parameters, and someone might really want this one and not others. 

I am leaning towards having a method that sets it on the service, however that isn't how the rest of the library is coded up. 

Further note to think about, should we default to BasicLogger if no one sets one?