Created Base Shader Pass (containing setting uniforms,

global/prop uniforms (methods which we can override in subclasses to do
custom rendering). ShaderPass, ImageProcessingPass and PrePass all
derive from Base Shader Pass, ImageProcessing and ShaderPass have custom
RenderDelegate methods to call the delgate and render into FBO, then
read the textures and draw onto the screen.  renamed peerInside to
previewer (turn on/off discarding superquad fragments), prepass is done
before main shaderpass, all passes must be placed into cameraPass to
transform into correct coordinates when passed as a delegate. capping
algorithm can be toggled (real-time csg in shaders), removed vtk
textures (handling texture units manually now), shader programs are
contained in the passes (no longer part of aperio class), commented
spline widget (might be using superquad for slider), triangulation
toggle removed, depthpeel toggle removed, prepass and main shader
updated few times a second (read from file) to allow real-time shader
file editing, changed tooltip for glass to previewer, refactored
shaderPass and ImageProcessingPass to take in a vector of
vtkMyTextureUnit objects (this way colour attachments to the FBO can be
easily be added by adding an item into the vector in the constructor of
these classes). Superquads cannot be resized below 0 size. Shader draws
capping using info from prepass, SSAO shader also takes in a capping
mask to not apply AO on the capped area (avoid artifacts for calculating
AO for non-existant objects below the cap), cleaned up fragment shader a
bit. changed shader compatibility mode to OpenGL 4.5. shader0 is the
prepass shader. ShaderPass doesn't save glDrawBuffer whereas the
imageprocessingpass does save it and restores it before/after rendering
to FBO.