Fix not caching OmniSharpServer path to correct variable

This could potentially fail, in, uh, some cases.
What.
Style changes

Setq returns the set value, so no need to use progn to group expressions
together.
Since if has no "else" expression, we should use (when)
Allow getting a shell command for executing OmniSharpServer

This works on different operating systems too.

Now with TESTS! Wow such professional.
Fix unable to start OmniSharpServer from emacs on osx

Also helps with omnisharp-reload-solution, which blocked emacs until the
command had completed on the server side. Now it doesn't block.