Add failing specs for defining methods on modules
Always define module methods using Opal.defn()
Only donate methods inside the runtime
Cleanup def node generation
Methods defined in reopened modules should not overwrite methods defined by class
Stop exposing Opal.donate - it is now a private method
Fix broken method chains on methods donated by modules
cleanup some module defn functions
Document use of iclass in append_features
Ensure a module can redefine a method it defined before
Add module fixes to changelog
Fix changelog