Add retrieve method to spreedly_core and allow gateway_token to be set at the time of purchase

This pull request does two things. First, it adds a retrieve method to the spreedly_core, so you can get individual payment_method information returned from spreedly. 

Second, it modifies the purchase_with_token method to accept an gateway_token option which is then used instead of the gateway_token set at initialization. Some market places allow clients to use their own gateway and allow products from a single cart to be from multiple clients. With this change, a single cart can be processed with multiple gateways, without having to re-initialize the spreedly gateway for each payment gateway.