(#4862) define_method is not a public method in Ruby.
The better-definers part of the EventLoop library change define_method to
be public on all objects, rather than private. This isn't standard in Ruby,
and we only had one place that wasn't respecting this to start with.
Rather than retaining this divergence we just use send to trigger the
behaviour externally in the one place that is needed.
Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>