Disable bits when switching from a shader.

In particular, shaders would, in activate(), call bind() on
their Attribs, which would glEnableVertexAttribArray() for them, but
nothing would ever glDisableVertexAttribArray().

For the most part, this worked out okay; higher indices were left with
dangling pointers to things, but since nothing in the shader tried to
read from them, it was all good. (In fact, apparently the WebGL spec
explicitly allows this)

On some GPUs, however, it DOES try to touch them, with disasterous results.
In particular:
 * Use an IndexedTrisShader. This turns on 5 indices.
 * Swap back to a QuadShader, which only has 1.

At this point, your IndexedTrisShader gets released() which can cause it
to clearProgram(). That calls destroy() on its cores, which in turn call
destroy() on the GLBuffers that those Attribs referred to.

Now you've got indices that are still enabled referring to a buffer that's
been freed; you've now loaded a segfault into the barrel and pointed it
at your foot, hoping your graphics card doesn't pull the trigger.