add more sophisticated openGL capability checks.

* if we are using the programmable gl renderer, it is safe to assume glDrawElementsInstanced is available (it is a GL core feature from 3.1)

* for legacy GL, we check against the extensions our hardware provides us with, namely:

````GL_ARB_draw_instanced````, which, in turn, depends on either `````EXT_gpu_shader4 ``` or ````NV_vertex_program4````.

It's not super-pretty, but commented throughout.

Signed-off-by: tgfrerer <tim@poniesandlight.co.uk>
Merge pull request #2467 from tgfrerer/fix-ofDrawVboMeshInstanced-Example

add more sophisticated openGL capability checks.