Add support for reading extra shbin information.

This allows reading swizzle patterns, constant values and output register information, if they are specified in the loaded shbin.
Move common shader defines into standalone headers.
Clean up shader bytecode definitions a bit.
shader bytecode: Cleanups.
Move loading code to its own class.