first pass at simplifying the shader system

This works more like the system I put in place for the rnd project years ago.
When the uber shaders were loading 4096 shaders, there were over 40k allocations.
Now there are just over 320 allocations.
cleanup pass
added support for preprocessor defines; ARB_explicit_attrib_location
FixedArray now supports C++11 begin/end for range loops
Supporting varied shader stages; cleaning up code
Fix end() on FixedArray
Fix StackString basename() and re-enable log in ConfigLoader
Support more graceful shader reloading
update to include output
cleanup shader loading
add ThreadSafeQueue and temporarily hooked up shader hot loading
moving threadsafequeue
remove general parameters
cleanup; moved ShaderKeyValuePair to std::string
stubbing out renderer backend
updated date
cleanup nom, stub out potential new renderer