Move cadence and pipeline declarations under capture, and move local
named-pipe handling under ipc.
Flatten display contexts and rename files after their contained classes.
Keep transport headers limited to transport contracts and capabilities.
Consolidate CSwapChainProcessor definitions so each source file matches
the class it implements.
Group the IDD sources and Visual Studio filters by subsystem.
Split the device and swap-chain implementations into focused units,
rename the context classes, and reduce header coupling.
This commit makes `CDebug` use Unicode internally instead of whatever
random code page is in use. It also gets rid of the horrible character
counting and replaces that with `vasprintf` and `vaswprintf` helpers
(partially inspired by Linux) which allocates a buffer.
For HRESULT logging, the error code in both hex and decimal are included.
The output is now guaranteed to be UTF-8.
As the IDD itself runs in a WUMDF sandbox, it doesn't have enough
access to perform interactive operations such as moving the cursor.
This helper service communicates with the IDD over a named pipe,
so that we can perform these things, as well as in the future provide
a configuration GUI.