Enumerable methods return Present, Blank

Returns Present or Blank where useful:

* collect (same behavior as fmap)
* each (same behavior as present)
* find_all (convert to Blank if the block doesn't match)
* grep (convert to Blank if the pattern doesn't match)
* map (same behavior as fmap)
* reject (convert to Blank if the block matches)
* select (convert to Blank if the block doesn't match)

Allows chaining Enumerable methods to get a wrapped value as well as
combining Enumerable methods with wrapped methods like `fmap`.

Producing an Array for these methods is not useful, because it's
unlikely that you'll want zero or more items (Array) in situations where
you started with either zero or one (Blank/Present).