Make WebPrivatePtr capable of wrapping garbage collected objects.

Extend WebPrivatePtr to let it safely hold on to garbage collected
objects, via a strong, persistent object reference.

As an example of use, adopt it for the Speech API platform layer
objects.

The implementation of WebPrivatPtr is courtesy of Vyacheslav Egorov <vegorov@chromium.org>

R=haraken@chromium.org,ager@chromium.org,jochen@chromium.org,tkent@chromium.org
BUG=340522

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

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