(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.
(maint) Fix problems due to ruby 1.8.7 not returning Hash

Ruby 1.8.7 select and reject does not return a Hash when applied
to one. This fix constructs a new Hash if one is not produced.

This commit also contains a fix of a typo in exception name (ParserError
instead of ParseError).
Merge pull request #1599 from hlindberg/issue-reject-select-hash

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