Simplify internal function

By returning an Array of DOM nodes, `traverseParents` can operate
faster, and `Cheerio#closest` can be made more efficient by not
needless wrapping intermediate results in Cheerio objects.
Correct bug in `Cheerio#parents`

Ensure that:

- The parents of *every* element in the selection are returned
- The descendent groups are added to the returned set in reverse order
  of the original elements
- The result set contains no duplicates
Merge pull request #318 from jugglinmike/fix-parents

Fix parents