Added all shader types and generalized shaderprogram constructor
Added support for multiple buffer types
Changes