mesa: implement GL_ARB_draw_indirect and GL_ARB_multi_draw_indirect

v2:
Removed some stray extern qualifiers.

Documented use of Draw*IndirectCommand sizes.

Removed separate extension enable flag for ARB_multi_draw_indirect
since this can always be supported by looping.

Kept generation of GL_INVALID_OPERATION in display list compile.
The spec doesn't say anything about them, but all the direct drawing
commands that support instancing do the same.

v3:
Initialize DrawIndirectBuffer with NullBufferObj.

Only hook up the Draw functions in vtxfmt.c if API_OPENGL_CORE
instead of _mesa_is_desktop_gl.

Fix index bounds.

v4: [Chris Forbes] Rebase to master -- significant conflicts due to
vtxfmt vtable no longer containing draw functions.

Conflicts:
	src/mesa/main/bufferobj.c
	src/mesa/main/dd.h
	src/mesa/main/dlist.c
	src/mesa/vbo/vbo_exec_array.c
	src/mesa/vbo/vbo_save_api.c