The Events - Checkout Revolution

The aim of this PR is to get these checkout events under control.
Better separation of checkout process / order creation events.

  - [x] Add checkout events to security step
  - [ ] Add order creation related events to all checkout steps. These events deal with the order creation mechanism, independently of the checkout process. So they will be reused for backend order creation for example. We keep all the current checkout events for things related to the checkout process itself. => Let's do it in another PR.
  - [x] Add post creation events: pay, ship, return, cancel
  - [x] Add `CompleteOrderListener` in `OrderBundle` to do the `$order->complete()` instead of having this in `FinalizeStep`
  - [x] Add a method to `OrderPaymentListener` which listens to `payment.pre_state_change`. So that when the state of a payment changes to `complete`, this method is called and dispatches again the `order.pre_pay` event. (currently, nothing is done!)
  - [x] Make `OrderStateListener` listen at every order post creation events, so that it updates its state accordingly (priority -100 to be called after all order modification)
  - [x] Flush between `payment.pre_state` and `payment.post_state` so that modifications are persisted in db. This is done in all `NotifyAction` in `PayumBundle`
  - [ ] ...