Add support for BeforeUnloadEvent

Add support for BeforeUnloadEvent as per the specification:
http://www.whatwg.org/specs/web-apps/current-work/#beforeunloadevent

BeforeUnloadEvent has a returnValue attribute. Setting returnValue to a non-empty
string in an event handler causes the user agent should ask the user to confirm
that they wish to unload the document. This is equivalent to returning a non-empty
string in the EventHandler:
http://www.whatwg.org/specs/web-apps/current-work/#onbeforeunloadeventhandler

BeforeUnloadEvent and returnValue are already supported by IE and Firefox. Previously,
Blink was passing a base Event type to the beforeunload event handlers instead of
a BeforeUnloadEvent.

Note that this patch also removes support for Event.returnValue. This used to be
an IE extension but this is no longer supported by IE (nor Firefox) so the
compatibility risk should be low. Applications use preventDefault() nowadays to
do this and only fallback to Event.returnValue to support older versions of IE
(IE < 9).

BUG=277851

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=156654

Review URL: https://chromiumcodereview.appspot.com/22893051

git-svn-id: svn://svn.chromium.org/blink/trunk@156774 bbb929c8-8fbe-4397-9dbb-9b2b20218538