gpu: Allow overriding GPU driver workarounds via command line

This change allows you to enable GPU driver workarounds by providing
command line switches with the name of the workaround. These workarounds
are used instead of the workarounds loaded from the JSON data. The
command line switch will be propagated into the GPU process allowing
these to be applied both with in-process GPU and without.

This change also promotes the table of GPU workarounds out of the
function into a static table. This static table is then used to
implement the WorkaroundsFromCommandLine() as well as for the existing
GpuDriverBugWorkaroundTypeToString() function. This use of the static
table reduces the resulting size of the object file.

By using const char* rather than std::string we do not introduce static
initialisers like the previous version of this change.

Previous CL review: https://codereview.chromium.org/180243012/

BUG=347130
TEST=run content_gl_test or chromium with and without switches and
observe workarounds being applied.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256615 0039d316-1c4b-4281-b951-d872f2087c98
SimpleWebViewDialog unregisters herself as WebContents::Delegate.

BUG=350629
TEST=none

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

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