(maint) Make select and reject produce result of same class as receiver.

The return type of select and reject where unspecified and tests
did not check for type (not caring because all tests applied more
iteration to the result and that evened out the differences).

Now both select and reject produce a result of the same class as
the receiver. This is now noted in the documentation.
Tests have been added.