added uniform assignment for programs

Added the program_uniform structure which is returned by gladus::program::uniform(), given a uniform name. The class supports all glUniform* calls and has code that adds additional convenience functions in case the gamma library is detected.