Merge pull request #16350 from JackDanger/test-rake-db-migrate-task

Add ActiveRecord::Tasks::DatabaseTasks.migrate
do a hash lookup for collision detection

hash lookup should be faster than searching an array.
invert check so we fail faster

there's no reason to to_sym the string if it doesn't match the regexp
anyway
Remove being/number methods from transaction class
Remove parent on Transaction object
Make ClosedTransaction a null object
Merge pull request #16341 from arthurnn/transactions_remove_begin

Transactions refactoring - 2
Move TransactionManager to bottom of class
Replace ClosedTransaction with NullTransaction
Merge pull request #16363 from arthurnn/null_transaction

Null transaction
use `get` instead of accessing the named routes internals
Rename method for clarity

Ruby generally does not use the is_* prefix on predicate methods.
Use available method rather than macro name checking
Fixes small error in ActiveRecord::Reflection docs

[ci skip]
Update README.md
Added Object#self which returns the object itself
Rename Object#self to Object#itself to have parity with matz sanctioned method name for Ruby 2.2
Rename tests too
always return a string from find_script_name

this allows us to avoid nil checks on the return value
just set the host, no need for another hash allocation / merge!