Nuke Dispatcher::DSL in favor of Dispatcher::Registry
Sync devtools
Extract Chain::Definition from Chain::DSL

While flay score bumped quite a bit, this change
definitely splits responsibilities better than
before. Previously, Chain::DSL was responsible
for collecting processors to use for a chain +and+
making sure that the internal array of processors
was correctly mutated. The internal processors
array got promoted to a dedicated object, therefore
Chain::DSL is left to do what it's supposed to,
collecting processors while delegating the mutation
of the internal processors to Chain::Definition
Simplify iteration where possible
Simplify specs for Chain::Definition#each
Fix whitespace to make rubocop happy
Adjust flay threshold
Use "or" instead of "||" for control flow
Avoid overwriting Enumerable#detect in Chain::Definition
Refactor Chain::DSL for use with instances of itself
Rename Chain::Definition#{merge => prepend}
Don't use class << self inside Chain::DSL::Builder

* Use #module_eval instead of #class_eval
Adjust flay score
Fix docs for Chain::DSL{::Builder} and Environment
Simplify Environment.build
Fix docs for Environment#registry
Adjust reek config
Implement Chain::DSL::Builder with instance methods
Perform instance_eval in Chain::DSL#__call__
Simplify Chain::DSL::Builder some more