Change the way delegates handles nil receivers

Inspired by issue #10559

If nill is passed as a receiver, I think an exception should be raised right away, there is the allow_nil option for that.

This caused strange errors because the root of the problem was masked by the exception raised in the rescue of NoMethodError block. (Again, see #10559)

What do you think ?

Thanks and kudos for the release !