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
Add option to stop swallowing standard errors on `after_commit` and `after_rollback`.
Currently the option will be +false+ and throw a warning untill set it to +true+.

Example:
```ruby
# For not swallow errors in after_commit/after_rollback callbacks.
config.active_record.errors_in_transactional_callbacks = true
```
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
The precedence here is `(a && b) || c`, but I think you intended `a && (b || c)`?