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
Yes there is:

```ruby
def do_query(param)
  connection = ActiveRecord::Base.connection
  connection.execute("SELECT * FROM people WHERE id='#{connection.quote(param)}'}
end
```
or even, with long queries (this is just a suggestion and an exploration of here-documents: http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#here_doc)
```ruby
def do_query(param)
  connection = ActiveRecord::Base.connection
  connection.execute(<<-EOQ)
    SELECT *
    FROM PEOPLE
    WHERE id = '#{connection.quote(param)}'
  EOQ
end
```