Expand `RelationSpy` with more query, spawn and finder methods

This adds more of ActiveRecord's query, spawn and finder methods.
This makes the spy more featureful and useful for testing. This
also organizes the class, adding comments for what ActiveRecord
class the methods come from. It also organizes the tests to use
better use cases and more explicit tests. Before the tests were
just a "sea of shoulds" and it was difficult to find where each
method was being tested.

This also removes `order_values` and `reverse_order_value` from
the spy. This was a short sighted addition as these require
double-managing the values and the applied expressions. Furthermore,
these methods seem to be intended as "private" or for internal
use only, as they require specific knowledge of how to set them
correctly. I'd rather not have the spy worry about managing both
ActiveRecord's hash of values and the spies list of applied
expressions.

The offset and limit values are preserved as we want to
use them in conjunction with the `all` method. Because of this,
they haved to be managed (particularly in the `except` and `only`
methods).