server: Allow additional server test modes
More commits in preparation for the debugger branch to be merged.
There are a few main contributions with this MR:
- Server test infrastructure is modified to allow for similar tests against the debugger down the line.
- Server test now runs on STDIN and on PIPE when it can. This means we are able to unit test cmPipeConnection stuff too. Note that this only works on unix because of python/windows reasons, so it is still critical to keep STDIN testing.
- This includes threading details; which have been wrapped in a manner consistent with the C++17 standard. The idea is to have it so when platforms all support that standard, it's easy enough to replace all on the threading types.
EDIT: Some parts were originally in this MR but have been dropped in favor of a future MR:
- RAII C++ types have been added to make working with libuv primitives bearable.
The last two commits are both misc. changes that are required for the debugger functionality. I can move them each into another MR, or into their own if desired.