Remove finishing? method from transaction.

The finishing variable on the transaction object was a work-around for
the savepoint name, so after a rollback/commit the savepoint could be
released with the previous name.

related:
9296e6939bcc786149a07dac334267c4035b623a
60c88e64e26682a954f7c8cd6669d409ffffcc8b
Extract iterator method in AR::SchemaDumper

Gems which wish to tie into ActiveRecord::SchemaDumper need to
duplicate this logic currently. [Foreigner] is one such example, as is a
library I'm currently working on but which hasn't been released yet:

    def tables_with_foreign_keys(stream)
      tables_without_foreign_keys(stream)
      @connection.tables.sort.each do |table|
        next if ['schema_migrations', ignore_tables].flatten.any? do |ignored|
          case ignored
          when String; table == ignored
          when Regexp; table =~ ignored
          else
            raise StandardError, 'ActiveRecord::SchemaDumper.ignore_tables accepts an array of String and / or Regexp values.'
          end
        end
        foreign_keys(table, stream)
      end
    end

[Foreigner]: https://github.com/matthuhiggins/foreigner/blob/master/lib/foreigner/schema_dumper.rb#L36-L43

Extract the skip logic to a method, making it much simpler to follow
this same behavior in gems that are tying into the migration flow and
let them dump only tables that aren't skipped without copying this block
of code. The above code could then be simplified to:

    def tables_with_foreign_keys(stream)
      tables_without_foreign_keys(stream)
      @connection.tables.sort.each do |table|
        foreign_keys(table, stream) unless ignored?(table)
      end
    end

It also, in my opinion, simplifies the logic on ActiveRecord's side, and
clarifies the intent of the skip logic.
add comment to the empty each method for not removing it in future
No verbose backtrace by db:drop when database does not exist.
Add where condition so select_one returns the correct record.
Merge pull request #16318 from zuhao/refactor_activerecord_adapter_test

make `adapter_test` run order independently.
Merge pull request #16295 from kenn/no_stacktrace_drop_task

No verbose backtrace by db:drop when database does not exist.
Merge pull request #16297 from calebthompson/extract-iterator-method

Extract iterator method in AR::SchemaDumper
Added nodoc to change_table
Merge pull request #16303 from rajcybage/removing_master

remove empty unused method
docs, clarify attribute query methods on numeric columns. Closes #16246.

[ci skip]
Fix typo and remove code block since present is not a method.
Transactions refactoring

Add a transaction manager per connection, so it can controls the
connection responsibilities.

Delegate transaction methods to transaction_manager
savepoint_name should return nil for non-savepoint transactions

Also add test to assets the savepoint name
Merge pull request #16284 from arthurnn/transactions

Transactions refactoring
Extract the transaction class to a local variable
Merge pull request #16305 from tomkadwill/documented_change_table

Added documentation for change_table
remove some caching

this caching doesn't increase performance, but does increase complexity.
remove it for now and find better ways to speed up this code.
remove the mounted? method

we know the routes should not be "optimized" when mounting an
application
System should not be an allowed enum name

Using an enum name of `system` can cause problems with `Kernel#system`
which is dangerous and things could get weird. This adds `system` to the
blacklisted class methods. The `detect_enum_conflict` method wasn't
checking `enum_name` just the `method_name`.

I also updated the tests to include `system`.