made uniform registration more flexible to prepare variant shaders
added a rule index to build multiple shaders from one template only
unified all shaders to make them use the generic shader system