initial attempt at cleaning up events in terms of where they are raised, how they affect default behavior, and how the affect other handlers. I need to do another pass because its clear that we want to be able to independently prevent default and stop propagation just like normal javascript events
second pass at internal use of events through raiseEvent via eventhandler interfaces.  Gonna add some tests to see if its addressing the basic use cases.