Eventification

@winhamwr @mightyiam 
Ok, this may be a bit premature, but there's enough going on here I want to get some feedback before I go too far down the rabbit hole...

So the idea here is, wrap certain blocks of code within a listener. Then immediately trigger the corresponding event.  This should in theory allow the user to attach their own event listeners that would most likely execute BEFORE the internal event listener.  This may not be desired in some cases, or it may not be desired at all... you tell me.

There are some events that are just triggered, not wrapped in listeners (insertTable, paste... some others...). It seemed to make sense to me but it's also late where I am and a bit tired :P

This is all very rough so keep that in mind but don't hold back, if I'm way off base better tell me now!

Also, let me know how you feel about this, but when I write custom events, I structure them like this: `prefix:event`. Examples: `wym:update` `wym:initSkin` `wym:openDialog`. It looks better to me than `wym-openDialog`, so that's one man's opinion :)
For update, openDialog, paste and insertTable, it seems like we'd be better off explicitly defining pre and post versions of each event. Otherwise, my first question reading this was "when do they fire". The `pre` version should probably have arguments passed that match the parameters that their calling functions get.

For example, the `prePaste` event should probably get the desired HTML as an argument, and ideally, we would find a way for it to modify the HTML so that the actual paste function can be extended. I don't have a great mental model for the best way to structure that, though. What do you think?