Notification should not leak document.

The notification object was leaking the source document. The notification are
setPendingActivity() when show()-ed, but the code path to the finalize() method,
which calls unsetPendingActivity() internally, is corrupted. The dispatch*Event()
functions was skipped from WebNotification* impl, it called dispatchEvent directly.

This patch changes WebNotification to not call dispatchEvent() directly, but use
dispatch{Click,Close,Error,Show}Event() methods. This avoids code duplication.

BUG=270000

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

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