Encapulate the ESSL compiler into a GL object that is per-context.

 * Allows for multiple contexts have to have different client versions, caps
   and extensions without causing shader compilation failures.

BUG=angle:823

Change-Id: I523679e90be031b0b7fa385d46d6839b1cf3029f
Reviewed-on: https://chromium-review.googlesource.com/227710
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>