GLBenches do not expect gl state to change between onPerCanvasPreDraw and *PostDraw, but we do a clear and sometimes we clear as draw. This causes us to bind vertex objects / programs / etc.
This change creates two new virtual methods which are called right before and immediately after timing.
BUG=skia:
Review URL: https://codereview.chromium.org/1379853003
The command buffer's GetShaderiv and GetProgramiv code checks
that the success value passed in is either -1 or 0.
Review URL: https://codereview.chromium.org/1318143004