Added card validation/determination methods

Useful for gateways which require a card type to be sent such as Secure trading which I'm working on.

Not sure if I've approached the list of default gateways suitably- but adding them to a member variable just caused a load of problems with your example app as it's not geared up to handle arrays. `Array to string conversion` errors appear in the text fields. Approaching it this way avoided that.