Enumerator#each_with_object should provide the yielder's return value to its block

Here's a simple illustration of the problem:

```ruby
foo = Enumerator.new { |y| p y.yield }
foo.each_with_object({}) { 42 } # prints 42 on MRI, nil on JRuby
```

This fix also lets us un-exclude `test_enumerator#test_with_object` as the `delete_if.with_object` assertion in there was failing because it implicitly relies on this behavior (I also added a regression spec explicitly testing this case).

(Note: I validated that Travis is pleased with this change.  The failures we'll get here are fixed in #1439)