Added initial support for different Shader languages.

Instead of a `&[u8]` or `Vec<u8>`, shaders are now represented by a
`ShaderSource` type that can contain different shader source
languages. The device then selects the right one at runtime.
I moved it into the `gfx` crate for now. I'm not sure how a builder API that works in a static would look like though.