Update payment status only on valid transition

If I get this right this code now only uses :pending_reason for determining the state? It's a bit more complex because the states listed in `valid_transitions` are combinations of payment_status and pending_reason:

```ruby
order: [:pending, :order]
authorization: [:pending, :authorization]
voided: [:voided, :none] # :none can also be nil, depends upon source but it's normalized when stored to :none
pending_ext: [:pending, <anything except :none, :order, :authorization>]
completed: [:completed, :none]
```