(#9671) Return nodes from internal RbTreeMap recursion
These methods were previously returning either keys or values, depending
on the particular method they were helping to implement. This was
inflexible and could result in multiple traversals to get information
which should be available from one. Now they return nodes, so their
callers can ask for the information they care about.
Concretely, this fixes a bug where #has_key? called with a key whose
value was nil would return false. This was because #has_key? simply
called #get, and could not distinguish whether it returned nil because
it was the value, or because there was no value.
Paired-With: Josh Cooper <josh@puppetlabs.com>