Block access to java.lang.Object.getClass in injected Java objects

Prevents invocations of java.lang.Object.getClass from JavaScript code via an
injected Java object.

On an invocation attempt, logs an EventLog message, and sends a message to
WebChromeClient.onConsoleMessage callback.

Bug: 13694467
Change-Id: I9eab38aac48c6ae4ad49dd06c67c8ccf0af17ea7
Backport "Recycle old V8 wrapper objects on navigations"

Bug: 14582835

Original CL description:

    [Android Java Bridge] Recycle old V8 wrapper objects on navigations

    When browser navigates to another page, make sure we de-associate
    NPObjects of injected Java objects from their old V8 wrappers.

    Not doing this leads to potential leaks of JS objects from one
    context to another.

    BUG=372914
    R=jochen@chromium.org

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

    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271002 0039d316-1c4b-4281-b951-d872f2087c98

Change-Id: I05aea77700238c54db47160e2e93faf331d040f6
Merge branch 'android-4.4.4_r1' into HEAD