Merge pull request #39 from redding/jcr-redo-system-tests

Update system tests, move to our latest conventions
Allow adding a response for a service for any params

This updates the stored response "stubbing" to allow stubbing only
a service name and having any calls made to that service generate
a response. This is useful in testing for cases where there isn't
any need to generate different responses for different params.
For example, to test how a part of code behaves when a service
returns a failing response you would stub the response to return
a 500 status code. Previously, you had to stub the service with the
params you expected to be called. This is annoying and typically
we just want to say whatever calls this service, return a 500 no
matter what params it receives. This allows for simpler tests that
focus only on the pieces that we care about and don't have extra
cruft that hides the goal of the test.

This makes the interface similar to `Assert`'s stubbing interface
and isn't backwards compatible. All the previous behavior is still
present, only the interface for using it has changed.

This also starts changes to the system tests to match our current
conventions. This moves the stored response system tests to a
client tests file and updates them to test multiple scenarios.
Merge pull request #38 from redding/jcr-change-stub

Allow adding a response for a service for any params
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.