I'd prefer it if this function returned the free port it found, instead of mutating `self._omnisharp_port`. You could change `_ServerIsRunning` to optionally accept a port to test (and the same for `_GetResponse`).

In the end, `_StartServer` would have the following line in it: `self._omnisharp_port = self._FindFreePort()`