Ok so I have begun work on conditional functions which is
a generalisation of the temporal functions. I need to go
back and work on the time source functionality as that is
the useful part of the time code.

I have modifed defpipeline so that it can use shaders defined
outside of itself to this end the macros defvshader deffshader
and defgshader now exist and the general defshader now exist.

I want gl-pull on shaders and pipelines to retrieve the sourcecode
so I will implement this next

also there are bugs in the matrix code, compare the rotation code
of m3 and m4.