Use betamax to allow the use of recorded responses

This will allow the use of canned responses to the functional test suite. It is setup so that if a username/password/partnercode isn't set then it'll fall back to using the canned responses and if they are set it'll record the responses.

* If a username/password/partnercode is set it will hit the test API and record the request/responses.
* If a username/password/partnercode is not set then it will use the recorded responses.
* It sanitizes the canned requests/responses so that sensitive values, or values that change each run are replaced with placeholders.

An example of the timing for running the tests against the test API vs canned responses is ~3m vs ~5s.
This relies on unreleased functionality/fixes in betamax, the author @sigmavirus24 said he can release a new version later tonight. At that point I'll update this PR to point to the released version of betamax.