Ensure multiple super methods chain correctly

The existing mechanism for adding super methods only allowed one super
method to exist at a time, with additional supers overriding the
previous ones. Now the super chain is implemented as a simple linked
list through the 'super' property.