Minimize the size of the vertex buffer

The vertex buffer no longer contains data for an effect unless that
effect is used (non-zero) somewhere in the vertex buffer. The vertex
shader passes along only those vertex attributes which are filled, and
the fragment shader uses aliases to map effect attributes to varying
registers differently depending on which attributes are present.
Also fixed a bug where updateEffects() was not being called when using
the "clear graphic effects" block.
Also cleaned up some old dead code.