EP-113: (WIP) Refactor ticketing to persist purchase object much later

The idea here is that we persist the purchase object only after the user
has passed the overview step of the checkout process. Here we are
either already done with the checkout (invoice) or we need a reference
object for the external payment service.