Adding program cast to program object.
Fixes and finishing off initial complete version of shaders and shader program classes.