Separate transaction logic from Conversation model

Attempt to split conversation and transactions.

In this PR there will be a lot of broken commits and a lot of commits with bad messages, but I'll squash them together later.

**Production check-list**
- [x] Fix all tests
- [x] Go through all added `TODO`s
- [x] Build to staging
- [x] Go through all delayed job changes and make sure they don't break
- [x] Practise migrations with real data SAMPO
- [x] Feedback skipped is not migrated
- [ ] Rollback strategy

**Test on staging**
- [x] No payment
- [x] Post pay with Braintree
- [x] Preauthorize with Braintree
- [x] Preauthorize with booking and Braintree
- [x] Testimonials
- [x] Checkout
- [x] Contact message + call to action
- [x] PM
- [x] Unread count
- [x] Transactions admin view
- [x] Paginations (inbox, admin transactions view)
- [x] Test all conversation/payment related JavaScript validations
As you've commented above, this doesn't belong here. One sure sign is that models should not know anything about services and here we are calling service code.