Refactor code that registers gateways as spree payment methods
Add gateway for First Data E4

* Add delegate for deprecated #credit method to proxy to #refund. This
  should probably be pushed up to Spree::Gateway in spree-core, and the
  #refund method should be used instead of #credit, but this is a more
  invasive change.