Adding supportsPurchase method to AbstractGateway

The supports* methods are really helpful, although it appears as though a method is missing to check if the purchase() method is supported.

This PR adds a supportsPurchase() method to AbstractGateway