Add support for bubbling events

Allow the template to specify that an event should bubble to the first available handler up the component hierarchy (```*``` - bubbled) or all the way to the root (```**``` - double bubbled). Double bubbled events get a ```cancelBubble``` function added to them to stop the bubbling. I tried adding a cancelBubble to all events, but it failed a magic change test where the data is passed instead of an event.

Since ancestor events using ```../``` couple the publishers and subscribers, and namespaced events seem to have some other complexity issues surrounding them (how to subscribe form a template, how to change the namespace, etc) bubbling seems like the next logical attempt to cut down on event proxy boilerplate in nested component templates. It would also allow components designed to be nested to fire events up-tree by default if they so desire, and it keeps the event context available to the appropriate callbacks.

See the tests for contrived examples. Is this closer to generally useful?