Fix path handling on windows and osx/linux

I added `expand-file-name` to handle paths with tilde, relative paths, etc. Ran fine on osx but when I tested on windows I ran into two problems:

- `shell-quote-argument` doesn’t work right with `start-process-shell-command` on windows for some reason. I think it has to do with emacs using cmdproxy.exe as the shell on windows, because the string it was outputting ran fine when pasted into cmd.exe.
- `expand-file-name` converts backslashes to forward slashes in path names and `start-process-shell-command` expects backslashes on windows

So I changed it to use `start-process` instead and now it works on windows and osx and handles paths with tilde and spaces properly. This doesn’t let you redirect output like before, so if `omnisharp-debug` is `nil` it adds a process filter that discards the output from the process, otherwise when outputting debugging info, it uses the standard filter that prints all output to the process buffer. I also added a process sentinel that prints an error message if the server process exits abnormally because I was having trouble figuring out how to configure it initially when the server process was failing silently.
Here's a suggestion: destructure the output of `omnisharp--find-solution-file`. There's a lot of `car` and `cdr`, and I think it would make it a lot clearer.

Here's an example:
http://stackoverflow.com/a/17722036/1336788

Note: I've only destructured in clojure personally. If you think this is a bad idea, I can try it out myself. Just let me know.