Improved Shader Class

- seperate compilation and source loading
- removed default consturctor
- type now an enum
- store GLSL version