Switch uniforms over to std::string.

Can re-implement these functions without dynamically allocated vectors
and strings if it becomes a concern.