This patch moves the platform creation and selection logic into the
per-debugger platform lists. I've tried to keep functional changes to a
minimum -- the main (only) observable difference in this change is that
APIs, which select a platform by name (e.g.,
Debugger::SetCurrentPlatform) will not automatically pick up a platform
associated with another debugger (or no debugger at all).
I've also added several tests for this functionality -- one of the
pleasant consequences of the debugger isolation is that it is now
possible to test the platform selection and creation logic.
This is a product of the discussion at
https://discourse.llvm.org/t/multiple-platforms-with-the-same-name/59594.
It doesn't seem like lldb cares about this kind of thing, but this adds a dependency cycle: lldbPluginPlatformGDB->lldbPluginProcessGDBRemote->lldbPluginPlatformMacOSX->lldbPluginPlatformPOSIX->lldbPluginPlatformGDB