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
This works only for already existing class methods, so needs to be after the method definition:
```ruby
module Test
  module_function
  def foo
    bar
  end
  def bar
    puts "bar"
  end
  private_class_method :bar
end
```