Refactored "skip callbacks" code on Subscription.

Advantages of `skipping_callbacks`:

  * applies to one subscription, not all of them
  * idempotent (reverts to previous state, true or false)
  * reverts state even if errors occur
  * simplifies client method (`cancel`)
Record payment notifications via Silent Post URL.

Authorize.Net will send an HTTP request to our server each time it
performs a transaction. With this change, we record the raw data (well,
raw after Rails parses the query string) in the database.

To do:

  * authenticate the request to make sure it's really from Authorize
  * transform the raw PaymentNotifications into Payments viewable
    from the admin UI
Upgraded cucumber and fog.

Cucumber because we wanted a bug fix (Around hooks run after
Background steps), fog because our extremely old version depended
on a specific version of multi_json that was too old for modern
Cucumber.

We'll test on staging to make sure the major upgrade to fog doesn't
break document uploads and downloads.
Use VCR for faster, more deterministic tests.

We had to use some trickery to make sure our VCR cassettes are inserted
before any Background steps and after any other After hooks.
Installed awesome_print for debugging/exploration.

Makes it easier to look at data and see what it's up to.
Fixed some mysteriously broken VCR cassettes.

For unknown reasons, the geocoder wasn't always recorded when we
first ran the tests.
Disable WebMock for specs.

They should definitely not be hitting the real net, but VCR isn't
the right solution for unit tests, and we don't want to do all the
method stubbing right now because we're in the middle of other work.
Payment history tweaks.

* spell American Express correctly, based on actual data
* don't crash if payment has no discount code
Automatically make Payments from PaymentNotifications.

Also, changed our fixture strategy to make it easier to create fixtures
from the real data we're collecting on staging.

You can now build a Payment from either an Organization or a
Subscription, and the Payment will fill in the other association.

https://www.pivotaltracker.com/story/show/67956896
Refactored PaymentNotification processing.

We use a factory now instead of putting a lot of knowledge in the
controller.

Also renamed Payment#arb_id to #transaction_id after realizing that's
the number we want to track. (ARB ID is redundant, as it's available via
the subscription.)
Renamed DB tables for Payment/Subscription.

We had already renamed the old Payment model to Subscription, but we
kept getting confused when we wanted to change the new Payment model,
because we would change the "payments" table which actually was still
underlying Subscription. It's confusing just explaining why it was
confusing.
Renamed subscriptions factory file.

Just more cleanup from the Great Renaming.
Removed discount codes from quasi-seed file.

They were messing up tests, and are no longer useful for new dev/staging
servers. Just make your own discount codes as needed.
Refactor: Prettied up some PaymentNotification code.
Authenticate Silent Post (payment notification) requests.

https://www.pivotaltracker.com/story/show/67956896
http://www.authorize.net/support/ARB_guide.pdf
Payment history: added notes field.

https://www.pivotaltracker.com/story/show/67956896
Payment notification tweaks after testing on staging.

* don't crash if x_subscription_id is not present
* set paid_at to when we got the notification
  (it's better than nothing)
* documented issue with MD5 authentication
Associate payments with notifications.

For better tracking and repair, if we need it.

https://www.pivotaltracker.com/story/show/67956896
Track which payment notifications have been processed.

Because in the future we'll want to (a) batch-process new notifications,
instead of doing them in the request thread, and (b) reprocess
previously discarded notifications, as we figure out new things we want
from the data.

https://www.pivotaltracker.com/story/show/67956896
Test fix: Added notes field to "edit payment" test.

https://www.pivotaltracker.com/story/show/67956896