vkd3d-shader/ir: Handle individual functions in hull shaders.
This goes atop !768 (merged). The last three commits belong here.
Hull shaders are different from all the others because each of them contains two functions instead of just one (the patch constant function and the control point function). So they need some special support in the passes that interact with the CFG (the structurizer and the undominated SSA lowering pass). With this changes we should be supporting DXIL hull shaders properly.