IECoreGl Improvements

These are miscellaneous improvements to IECoreGL to support an improved Viewer in Gaffer. They _do_ break Cortex compatibility, so once merged we can't do a Cortex install until Gaffer is updated too (I believe Gaffer is the only client for the changed API). Once this is merged, I'll need to roll out a new set of prebuilt binary dependencies for Gaffer, so the Travis tests can pass when I make the corresponding Gaffer pull request.