kvs/io: parser_is_identifier_lead(): reordered logic by character frequency.
gfx/shader_def: renamed data_indices to data_offsets; tidy.
resource/resource_handler/shader: param block corrections & validation.

resource/resource_handler/shader:
	corrected param block pushing;
	validated param blocks;
	reindexed draw param blocks.
tool_build/resource_compiler/shader_def: URC.
tool_build/resource_compiler/shader_def: read param blocks from definition.¹

1: Eventually I want to parse the source for the definitions, but
I'm just not up to it right now. Parsing is annoying.
gfx: added ParamBlockNameHash and hash utilities; tidy.
gfx/renderer: reset param block states in teardown_base(); made _fixed_param_blocks only store name hash.¹

1: Only need the name hash to see if a fixed param block is set
for that index. It can also be used for name-based validation
with shader units.
gfx/renderer/opengl: expanded TODO note for param block setup; tidy.
gfx/renderer/opengl: setup_param_block_bindings(): bind param blocks relative to base index.¹
gfx/renderer: added fixed param block interface.

gfx/renderer:
	added set_fixed_param_block() and unset_fixed_param_block().

gfx/renderer/opengl: implemented fixed param block interface.
gfx/renderer/opengl: added Shader state to validate param blocks.
gfx: moved GLCE defs to gfx/gfx/opengl_common.
gfx/gfx/common: use TOGO_GLCE() immediately after glewInit().¹

1: Ugh, GLEW. glewInit() makes an invalid call on my current build,
so we'll just always check to keep any from sneaking up on the next
error check.
app/app: update input buffer before polling!¹

1: Ooops!
math: added MC_PI_HALF (π/2) constant.
resource/resource_handler/shader: print param block name hash in validation assertion.
tool_build/resource_compiler/shader_def: corrected param block name hash.¹

1: Was using the name hash of the name string... which never changes!
gfx/renderer/opengl: create_shader(): corrected param block size shifts.¹

1: I.. I've failed.
gfx/renderer/opengl: added some OpenGL parameter queries.
gfx/renderer: added make_param_block_binding().¹

gfx/renderer/opengl: implemented make_param_block_binding().

1: 256 alignment is common!? So much for my buffered dreams.