Adds support for pre-authorization payment types

This also introduces WebMock (replacing FakeWeb) so that the
outgoing requests could be checked, after the fact, to ensure the
correct set of credentials was being sent to the gateway