Update constant names for some test apps

Constants changed from an array of vec4's to a struct with various data
type members. This change updates common code as well as the extrudeGS
and subroutines tests, but the tessellation and generic tests still need
to be updated.
Track temp reg data type at scalar rather than vec4 granularity
Better temp register data-type determination

Previous method did not handle an instruction which changed the data
type of the destination when the destination was also used as a source.
Call SetDataTypes for tessellation shader phases

SetDataTypes is the function which determines the data-type
(float/uint/int) of temporary registers.