Fix issues with instanced rendering

True instanced rendering with the MultiDraw* family of calls requires
use of an extension that is not yet widely implemented:
GL_ARB_shader_draw_parameters. This provides shader code with a draw ID
built-in variable representing the index of the draw in the MultiDraw
routine. Without this it is difficult to send per-draw data such as
model transforms to the shader without breaking the batch into what is
essentially a single draw.

To deal with this, rendering code now deals with the absence of this
extension and deals with "pseudo-instances". Pseudo-instances are split up
into unique draws with their own draw command unless true instanced
rendering is fully supported.

From the script API side of things, nothing has changed. The methods for
adding and transforming an instance have not changed. But the generation
of scene draws adjusts accordingly so that behavior remains unchanged with
the support of shader draw parameters (SDPs), or lack thereof.

This needs to be thoroughly tested across, as my main box doesn't support
SDPs. There needs to be a significant amount of debugging and auditing
code added so these things can be easily tested without digging into the
nitty-gritty details of the implementation.