Shader's Linked, Apply, and BindUniformNamesToLocations are defined

|SOURCE|
[Common/Shader]
* Link creates an OpenGL program, checks that it's valid, attaches shaders,
  links the program, then associates the names of the uniforms with location
  IDs
* BindUniformNamesToLocations iterates over the set of names in the
  name->shader parameter map, verifying the location bound is valid before
  updating the map value
* Apply does a minimal amount of error checking, ensuring the program is linked
  and then applying the shader program