Remove specific events in favour of a generic one, add disable and enable events.

The generic change event now fires an object with a newValue, oldValue, type and event (if the change was originated from a link).