Pass form data on to omnipay gateway

Let the gateway implementation decide what's relevant, rather than pre-filtering on gateway agnostic layers like PurchaseService
Clarified testing dependencies in composer.json
Allow 'notify' endpoint (separate from 'complete')

Some gateways expect different behaviour from the endpoint based on whether its sending a redirect for the user's browser, or a server-to-server failover gateway response. IP Payments for example expects a 2xx HTTP response on the server-to-server message, and fails on 3xx. We still need a 3xx redirect for the user URL though.
Fix failing tests when other gateways are registered