RecordSet#last takes optional count argument

Consistent with RecordSet#first, Array#last, etc.
Don't subclass RecordSet

It adds unnecessary complexity, especially to the case of delegating scope
methods from the class singleton. We can also give clearer error messages when
trying to do illegal things instead of having methods confusingly available on
some scopes but not others.
RecordSet delegates to class singleton with itself as current scope
Implement RecordSet#== and #inspect