Create :payment_authorized state for Contributions

Also includes a revision on the existing code of state machines. If you want to take just the new state and discuss/reject other changes, I can cherry-pick the commit 1c0d435 and split between pull requests.