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
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