Compile shader strings into binary.

This change causes the strings for the shaders to be compiled into the
binary during cabal build. When a user of this library desires, he or
she may invoke withTempShaderPaths, which causes the necessary shader
files to be written into a temporary directory, and then passes the
paths to the user code.

This way, we don't have to worry about the location and distribution of
static data files (previous handled via cabal install, which meant any
user of the binary needed to have installed it via cabal install), but
we also have the possibility of reloading shader files during runtime.
A debugger or artist may tweak the temporary shader files and invoke
some routine to re-read them, instead of being forced to recompile the
library and application code before seeing the changes.

The code in the cabal Setup.hs is a bit hacky and could definitely be
improved.