#4566: Remove extra decrement of transaction level

`rollback_active_record_state!` tries to restore model state on `Exception`
by invoking `restore_transaction_record_state` it decrement deep level by `1`.

After restoring it ensure that states to be cleared
and level decremented by invoking `clear_transaction_record_state`,
which cause the bug: because state already reduced in `restore_transaction_record_state`.

Removed double derement of transaction level
and removed duplicated code which clear transaction state for top level.
Blacklist->whitelist for reference scans in order!

Stop special-casing Arel::Nodes as exempt from reference scanning in
order. Instead, only scan order values that are strings for a table
reference.
Merge pull request #11439 from ernie/only-scan-strings-for-nodes

Blacklist->whitelist for reference scans in order!
Merge pull request #11434 from jetthoughts/new_save_transaction_bugfix

Remove extra decrement of transaction level
Revert "Don't use Rack::Sendfile middleware if x_sendfile_header is not present"

This reverts commit 19ac034bdc9be175eff7cf54208ba14b43d97681.
And allows webservers to configure X-Sendfile-Type.

Closes #11440 thanks to [@MSch]

Conflicts:
	railties/lib/rails/application.rb
Rack::Sendfile is now included in middleware by default, change tests to reflect that
Correctly handle relations as values in where() for polymorphic associations.