Update viewport array tests to work in GLES
- Use shader specialization to enable the correct extensions and version.
- add supported functionality check to all tests
- Use runtime selection to determine Core vs ES functionality
- use readpixels from a fbo attached texture in ES instead of getTexImage
- disable provoking vertex calls for ES, and just assume LAST_CONVENTION
- skip the subroutine tests in ES
- Use templatized helper functions and an overloaded DepthFuncWrapper class
to select the appropriate version of depth functionality as GL depth
functions use GLdouble data types and ES uses GLfloat data types.
Change-Id: I9b37213acbdf41b93447741cfa097bb734ed4099