Structure the definitions a bit more like the other classes.
The main change here is to split EXP with the done bit set
to a separate opcode, so we can set hasSideEffects = 1
if the done bit is in use since this has the special constraint
that it should be the last exp in the shader.
Previously all exp instructions were inferred to have unmodeled
side effects.
SDNPMayLoad instead of SDNPSideEffect for consistency.