Separated shader into its own class even though it won't be used outside of shader_program. Correcting compile errors.
shader compiles, need to test.

- Renamed assert.h to error.h, added error.cpp.
- Modified error with overloads for char const* and unsigned char const*. The reason for the
  latter is that some OpenGL APIs (GLEW namely in my case) return strings of unsigned chars
  for some error reporting mechanisms (glewGetErrorString).
- Verified LE_ERROR message box works.