Make ShaderManager an interface

Add Headless ShaderManager
Merge pull request #864 from mkienenb/shader-manager-as-interface-without-lwjgl

Make ShaderManager an interface