Remove WGC3D::isContextLost references from cc

The notion of whether a context is lost is a property of both the gpu::
context itself and the system providing it. For instance, the content
context provider checks if there is an error in the context or if the IPC
channel backing the command buffer is down. Thus, asking if a context is
lost really should go through the ContextProvider. This patch routes all
lost context checks from cc through the ContextProvider.

Unfortunately, this required reworking the program initialization code
considerably due to the way some DCHECKs were written. The new model is that
the program binding itself is inert upon construction and all initialization
is done in the Initialize() call. This call is still made eagerly for some
expected-to-be-common programs and lazily for the rest. This patch moves
when the linkProgram() call is issued slightly for the eagerly compiled programs,
but it shouldn't make any difference in practice.

This patch also revamps TextureLayerClient to hide the backing context since
cc only makes two calls (check for loss and insert rate limiting token) on
the client's context.

R=piman
BUG=181120

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

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