Add `check_payment_outcome` method stub
Stop assuming we have a query string
Implement outcome checking & REFACTOR ALL THE THINGS
Update tests
Fix response validation
Fix regression due to using request.REQUEST

At some point in the stack, we need to pass the query parameters around
and they end up being serialized as JSON. Using request.REQUEST,
however, leaves us with a non-serializable `MergedDict` object, and
everything goes to hell from that point. Let's not use request.REQUEST
any more.
Fix tests to allow POST responses
Add POSTback acknowledgement
Sort the gateway constants

Nobody likes a mess.
Add support for server-to-server payment notifications
Fix tests and a few mistakes
Bump version number

This is a temporary version number to allow a targeted deployment on
the integration platform, since real life tests can only be performed
on a server that is visible from the Adyen platform.
Improve code consistency
Send more identifiers to the payment platform

When working with postback notifications, we cannot rely on the
existence of the Oscar `CheckoutSession` to fetch the current order
when coming back from Adyen. Our solution is to pass all the relevant
identifiers (`customer_id`, `basket_id` and `order_number`) into the
`merchantReference` Adyen field, which is systematically sent back
to the application, whether using a GET or a POST method.
Provide additional details about the transaction
Also pass the session key around

It will be used to get back the user's checkout session in case we
place the Oscar order outside the regular request/response cycle --
such as a POSTback notification.
Migrate migration (yo dawg)
Stop passing the session key around
Allow multiple transaction records for one order number

For example, we might want to keep track of a refusal, a cancellation
and then a final acceptation of a payment.
Improve logging syntax