Defer payment provider logout (bug 1037513)

The API to start a transaction doesn't return
a payment provider because the transaction has not
been created yet. This defers payment provider logout
until right before we redirect to the provider's web
flow.

@muffinresearch r?

There is also a Webpay patch coming shortly.
at some point I wanted to pass in a null ``provider`` for testing but I'm not sure if I ever wrote that test. Hmm.