Deduplicate DeviceEvent* classes

r175792 did a good job on refactoring this for the most parts, but it didn't do
so well by leaving behind the old classes only for NavigatorGamepad. This CL
trasitions NavigatorGamepad to the new base classes and and removes the code
duplication.
Also removeEventListener fixed not to assume that it was the last listener.

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

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