Make unbuffered output the default behavior for running ycmd
Currently we don't force unbuffered output by default for Python when running ycmd, and this leads to some problems for some users, e.g. in #104. If we add -u to the Python arguments, we can force unbuffered.
We should probably make this the default. Experiment with this and make sure it doesn't have any adverse effects. If it's OK, make it submit it.
Since users set ycmd-server-command, it doesn't seem reasonable that we can inject "-u" into it reliably. Who knows what their launcher command is. It might be better if we set:
(setenv "PYTHONUNBUFFERED" "x")
for them when calling start-process. Is there a way to set that environment variable for only that process call?
If we go this route, we should probably make it optional but on by default. E.g. we could have a variable ycmd-unbuffered-python which determines if we set PYTHONUNBUFFERED in the server call.