Specs: clean up event listeners a bit. Drop the pointless
'preventDefault()', since that doesn't really do anything now. Clean
up how dispatchEvent() works. Add a 'handled' boolean that listeners
can check to see if they should ignore the event.

Review URL: https://codereview.chromium.org/752093003