Added bank account unit tests.

Added tests for:
- CIM API
- `AuthorizeClient` card and saved_card
- Data validation
- Live tests

In the process of writing these tests, I expanded the CustomerAPI mock to
handle XML SOAP enumerations. Tests may now validate provided values for
enumerations against allowed values as defined by the WSDL.
Cleaned up bank account and expanded validation.

Fixed the following issues uncovered in unit tests:
- Broken compatability with `create_saved_payment()` positional args
- Handling of `first_name`, `last_name`, and `bank_name`
- `__repr__` mismatch for `AuthorizeBankAccount`
- Invalid use of AIM API with _transaction in AuthorizeBankAccount

Added the following to address issues uncovered in unit tests:
- Added additional validation for bank account objects
- Added `company_name`