Refactored smells out of selection/where.rb

Smells reported by reek:

Before:

21: NoBrainer::Selection::Where#extract_regexp! doesn't depend on
    instance state (UtilityFunction)
23: NoBrainer::Selection::Where#extract_regexp! has the variable name
    'k' (UncommunicativeVariableName)
23: NoBrainer::Selection::Where#extract_regexp! has the variable name
    'v' (UncommunicativeVariableName)
21: NoBrainer::Selection::Where#extract_regexp! refers to options more
    than self (FeatureEnvy)
21: NoBrainer::Selection::Where#extract_regexp! refers to v more than
    self (FeatureEnvy)
12: NoBrainer::Selection::Where#where contains iterators nested 2
    deep (NestedIterators)
 2: NoBrainer::Selection::Where#where has approx 6 statements
    (TooManyStatements)
12: NoBrainer::Selection::Where#where has the variable name 'a'
    (UncommunicativeVariableName)
12: NoBrainer::Selection::Where#where has the variable name 'b'
    (UncommunicativeVariableName)
 5: NoBrainer::Selection::Where#where has the variable name 'k'
    (UncommunicativeVariableName)
 5: NoBrainer::Selection::Where#where has the variable name 'v'
    (UncommunicativeVariableName)

After:

None to report

Notes:

Whew! Okay, so I extracted a ton of methods, moved utility methods to
the module level, and made the variables a tad more communicative.