Fix NeedsFullRepaintForPositionedMovementLayout

The logic was just plain wrong: during a position movement layout,
we have to invalidate the old and new position as we are shifted.
The current code would generate incremental invalidation as it
fell down the wrong path.

Refactored the code to do what it's supposed to do and added
an invalidation test to cover a case where incremental
invalidation failed.

BUG=352050

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

git-svn-id: svn://svn.chromium.org/blink/trunk@169505 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Simplify EventTarget bindings generation

EventTarget has special-cased bindings generation, with several bugs.

This CL corrects and simplifies it in a few ways:
1. Remove duplicate |EventTarget* imp| initialization
Currently EventListener has |EventTarget* imp| initialized twice.
(With different names, |impl| and |imp|, so this compiles.)

Also rearranges the template code so that the special case
is more narrowly focused (instead of overall),
and check the interface name, not just method names,
which clarifies the special case.
(This also means we can remove the test cases,
as it's just a special-case for one interface.)

This does *not* change web behavior:
Unlike all other methods, addEventListener and removeEventListener do not check arguments length.
This is apparently required for legacy calls,
so I've opened a separate bug for this:
https://code.google.com/p/chromium/issues/detail?id=353484

Previously EventTarget skipped this, due to having an overall special case,
instead of just special-casing the method call itself;
we now have an explicit special-case in the template.

This was hit by 3 tests:
fast/dom/node-legacy-event-listener.html
fast/dom/XMLHttpRequest-legacy-event-listener.html
fast/dom/Window/window-legacy-event-listener.html
(More details at the bug.)

I've added more detailed tests on behavior, and other argument handling.

Follow-up CL:
* further reduce special case (use usual argument handling)

TBR=haraken
BUG=345503
BUG=353484

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

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