Improve texture unit detection.

On my Windows7 VM,

glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &numTextureUnits);

says there are roughly -8e7 texture units available. This patch
modifies ShaderProgram to gracefully handle such nonsense values.

Change-Id: Id533941939782772cfdfb61cd0ae81cb3fa6812c
Merge topic 'windows-fixes' into master

4c55e777 Improve texture unit detection.