Test that glDiscardFramebufferEXT binds to the correct function

MockGLInterface::GetGLProcAddress used to return the same mock function
for different versions of a GL function. This prevented any detailed
testing of the GL bindings in the GPU unit tests.

This patch changes the logic so that MockGLInterface::GetGLProcAddress
returns a different mock function for each different valid function name,
so that the function pointer can be checked to ensure that the bindings
were done correctly. However, the different mock versions of the same GL
function still redirect to the same MockGLInterface member function. This
preserves hiding the intricacies of the GL bindings from unit tests that
are not interested in them.

Initially, this is used to make sure that glInvalidateFramebuffer is
bound on GLES3, and glDiscardFramebufferEXT is bound on GLES2 when the
extension is present.

BUG=322489
TEST=gpu_unittests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248959 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 248959