Change Event to be subevent-able
Change BaseError to support suberror-ing
Change Event.subevent to work better with the current event setup
Remove BaseError.suberror and Event.subevent (too much unnecessary magic, sorry for the commit noise)
Change Extendable.extend to pass the current context as the first arg of the actual constructor function
Update all structures to use the new Extendable.extend() functionality (where it passes the context as the first arg), and at the same time, change all the current event types to use Event.extend()