iATS Payments gateway support

This commit adds support for the `purchase` and `refund` operations on the iATS Payments gateway. This replaces the existing iATS implementation (http://cl.ly/V8DE) and supersedes another, existing, pull request (http://cl.ly/V88q).

There is a backwards-incompatible change which I'd like advice on how to handle: The original implementation used credentials named `login` and `password` whereas this implementation sticks with gateway-specific naming of `agent_code` and `password`, and requires an additional `region` option. I don't believe the current implementation is being used, but do want to know how such changes should be handled.