Add `before_call` and `after_call` callbacks

This adds a `before_call` and `after_call` callback that is
triggered whenever a service is called. This can be useful when
a "global" client is built and there's behavior you want to run
anytime a call is made. The callbacks are run in both live and
test clients so you get similar behavior in testing as well as
live.