WebGL: Don't destroy mailbox textures in the destructor until they're released.

This CL fixes the bug that WebGL makes the compositor get following gl error.
[20074:20074:0317/145233:1532049594488:ERROR:gles2_cmd_decoder.cc(10071)]
[.Compositor-0x731c2a2e9a0]GL ERROR :GL_INVALID_OPERATION :
glConsumeTextureCHROMIUM: invalid mailbox name

Currently, DrawingBuffer deletes all textures, even if some textures are
used by the clients. This CL makes "release callback" be able to delete remaining
textures even after the DrawingBuffer is destructed.

This pattern is very similar to that used by accelerated 2d canvas and HW Video. See Canvas2DLayerBridge.

TEST=DrawingBufferTest.verifyDestructionCompleteAfterAllMailboxesReleased,
Reload http://browsertests.herokuapp.com/webgl/webglPerformance.html in all platforms.
BUG=344393

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

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