Started implementing track_data as card present alternative to card not present transactions

transaction_api
- added 'track_data' to _aim_base_request() as alternative to 'credit_card' and 'bank_account'

schemas
- Created colander.MappingSchema for track_data

xml_data
- created parser to turn track_data parameters into xml element

test_live_transaction
- created test to use track_date parameters
- renamed existing tests to distinguish between card present and card not present
authorize.api.transaction_api
- Added retail element at end of _aim_base_request

authorize.schemas
-Changed TrackDataSchema.validator error message
- Added RetailSchema to AIMTransactionSchema
- Updated require_payment_method error message to include track_data keyword

authorize.xml_data
- Removed debugging comment from last commit

tests.test_live_transaction
- Added auth and settle test for card not present transaction

tests.test_transaction_api
-  Split credit card transaction tests in present and not present versions
docs.transaction.rst
- Added documentation for new track_data and retail parameters
authorize.schemas
- Only one track is required for track_data

authorize.xml_data
- fixed bug where track2 xml element wasn't being added to the tree

tests.test_transaction
- expanded trest cast to include above bug
authorize.schemas
- sentinel values for TrackDataSchema validators are optional
- fixed typo in TrackDataSchema.validator

authorize.xml_data
- Both tracks are not allowed in request, prefer track1 when both are present

tests.test_transaction
- fixed typo in test method name

tests.test_transaction_api
- Removed track2 xml element from expected card present request, see xml_data change
Merge pull request #25 from Klupamos/Card_Present_Transactions

Card present transactions