This changes the contract with the delegate. Now it checks whether the delegate responds to the method rather than checking whether it's truthy (not nil or false) *then* checking whether the non-truthy value responds to the method. That means that delegates must now implement `respond_to?` - not true for some proxy objects.

To be clearer that we're checking whether `nil` responds to the method, and that `false` isn't captured by `:allow_nil`:
```ruby
def #{method_prefix}#{method}(#{definition})
  delegate = #{to}
  if !delegate.nil? || nil.respond_to?(:#{method})
    delegate.#{method}(#{definition})
  end
end
```