Add store credit to list of payment_methods.

This will currently cause issues if you attempt to save the store credit
payment method in the Spree admin interface because the gateway is not
in the list of available payment methods.

It will default the store credit payment method to the first payment
method in the list, save with that, and now allow you to change it back,
thereby breaking everything!
Set store credit amount input step to any.

This will allow decimal values in the store step, such as, $0.02.
Previously this would lead to an error where an HTML5 compatible browser
would ask you to input either 0 or 1.
Compare state directly in specs.

Previously this test used the invalid? method definition from state
machine which conflicted with a method from ActiveModel. Instead of
dealing with that issue, we will compare the state directly to what it
should be rather than relying upon the magic methods defined by
state_machine.

Fixes #5
Store originator on store credit events

This allows admins, gift cards, reimbursements, refunds, etc to be recorded as the "originator" of a store credit event.

- Add originator_id and originator_type fields on spree_store_credit_events table
- Allow sending an "originator" property via payment method authorize/capture/purchase/void/credit calls
- Add an action_originator attr_accessor on StoreCredit that propagates to the StoreCreditEvent on save
- Send an originator to StoreCredit when redeeming a gift card
- Send an originator to StoreCredit when granting a store credit via the Admin UI

Also:

- Rename StoreCredit#authorization_code -> #action_authorization_code to match the other "action" properties
- Refactor some method calls a bit
- Refactor some specs a bit
Add some specs

Specs I forgot to put in db4a81e7bcd34fee80b2ec6a9df638b780cc0462
Also, update a non-bang save to a bang version. It was failing silently in the specs due to some missing data and was causing these new specs to fail.
Merge pull request #3 from gmacdougall/2-2-step-any

[2.2] Set store credit amount input step to any.
Merge pull request #8 from gmacdougall/2-2-state-machine-method-conflict-fix

[2-2-stable] Compare state directly in specs.
Lock store credit before modifying.

This prevents a potential race condition where store credit can be
consumed by multiple checkouts happening simultaneously.

As with most race conditions, it's difficult to replicate in a test
environment, but this will now lock the store credit prior to
modification, so that modifications happen within a transaction with the
correct up to date values.