Moved calls to glUniform(..) in a separate header file.
Moved the 'pass' function.
Use a static_assert to get a cleaner message instead of an horrible enable_if error message.
Moved wrappers to opengl calls.
Rework on glprogram.