Beanstream: Add additional Legato and vault support

Yes, prior to this PR, a string as the `source` parameter referred to the `customerCode` (AKA billing the payment profile), hence, the need for `:payment_method` to differentiate them.

With Beanstream you can make a purchase using 3 methods (active_merchant currently supports the first two):
* **Credit card** (`source` is a CreditCard object)
* **Payment profile** (AKA `customerCode`; this can be a profile created via Beanstream GUI or a credit card converted into a payment profile; `source` is a string)
* **Legato token** (AKA `singleUseToken`; CC credentials are tokenized using legato.js and the token is posted to your app instead of the CC number; this token can be converted into a payment profile or charged directly; also a string. **This PR attempts to add support for this feature**)