Recompile shader upon save

-This is hooked up rather poorly and is just a proof of concept.

It is goofy because the previewWidget owns the shader.  The
ShaderEditorWidget knows about the preview widget.  The
ShaderCompileMediator responds to code changes and it asks the
ShaderEditorWidget for the preview widget to explictly calls recompile.

I'm not using signals/slots because I don't see the point if you have to
have the object you want to connect the signal and slot to.