Refactors load_order in checkout controller

Creates one method for each logic requiring a redirect and make it a
before_filter. Hopefully making it easier to view that logic and change
it

Also removes invalid comment about #update being updated in promo. Since
there is no promo gem any longer
Removes #state_callback from checkout controller

Avoids confusion scenarios such as the one described in #2488. After
state callback methods does not make much sense at all. Besides it
doesn't behave as expected. Fixes #2488

Fixes #2557