Enable payment validation in backend

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Fixed tickets | na
| License       | MIT
| Doc PR        | na

This fixes 2 things:
- the order state, which was stuck on `cart` before. Now thanks to the listener it's changed to `confirmed` when Order is fully paid (listening at order.pre_pay event)
- the proper event dispatching when changing manually the state of a payment. Now it dispatches the payment.pre_state_change event, that triggers itself order.pre_pay and so it confirms the Order

You can now use non-instant payment like check and transfer, and confirm the Order manually once the payment is received from the backend.