Cleaned up code and broke into classes. The class structue now allows for easy overriding to accomodate different language targets.
Implemented HlslFragmentWriter as a specialization of HlslWriter. This allows for return syntax to behave differently for fragment shaders than for regular functions.