Refactored smells out of document/selection.rb

Smells reported by reek:

Before:

16: NoBrainer::Document::Selection::ClassMethods#all contains
    iterators nested 2 deep (NestedIterators)
17: NoBrainer::Document::Selection::ClassMethods#all has the variable
    name 'a' (UncommunicativeVariableName)
17: NoBrainer::Document::Selection::ClassMethods#all has the variable
    name 'b' (UncommunicativeVariableName)
26: NoBrainer::Document::Selection::ClassMethods#scope contains
    iterators nested 2 deep (NestedIterators)

After:

Nothing to report

Notes:

In lieu of extracting a private class method (filter_descendants), I
tried out the code in the TODO. That only caused one failure, but the
changes required to make that pass (has to do with .in not being
available in that context), so I did the method extraction.

Additionally, .scope was changed so that it sends :define_method
directly to the singleton class.