Add option to stop swallowing errors on callbacks.

Seconds take of #14488 .

After the transaction refactor, we can cleanly apply this patch, as we have a better control of the stack of transactions, and we know that even when raising errors, the transaction wont leaky into the stack.

### Description
The current behaviour is to only log errors that happen on
`after_commit` and `after_rollback` callbacks, this commit adds a
option to active record which make those errors actually raise instead
of only be logged.
    Example:
```ruby
# For, only, log errors in after_commit/after_rollback callbacks.
config.active_record.errors_in_transactional_callbacks = :log

# For raise errors in after_commit/after_rollback callbacks.
config.active_record.errors_in_transactional_callbacks = :raise
```
The option should be removed in future versions of Rails, as the desired
behaviour is not to swallow exceptions.

[fixes #13460]

review @jonleighton @rafaelfranca @tenderlove @chancancode @senny
Nit: let's make this a boolean `ActiveRecord::Base.raise_in_transactional_callbacks` and default it to false. IMO, it doesn't make sense to provide the `:log` option to silence the warning if we are just going to remove it in the next release.

It could say something along the lines of "Currently, this is how it works. In the future, this is how it would work. Set blah to `true` to opt into the new behavior and remove this warning."