Fix issue with using undef that shows on Rubinius

The problem with undef is that it actually prevents any sends to an
object with that name. What is intended here is probably to remove the
method that was just added to the object.

On MRI you can get away with this, since method_missing is implemented
in C. In Rubinius, method_missing is implemented in Ruby. So when you do
undef, you prevent any calls to method_missing in the future, also the
default method_missing that raises the NoMethodError.

This commit changes it to use remove_method, which is probably the
intended behavior here and allows for the specs to pass on Rubinius in
the same way.