Fix OmniSharp launch under Windows
Small refactoring

Use the dedicated function to check if we're running on Windows instead
of checking the platform directly.
Fix faulty logic in previous commit

Previous commit is 9b8781322ef3d18430c3da37e9d6b1be3b832f8b
Fixed OmniSharp launch under Windows (again)

We pass shell=True to Popen so that OmniSharp is not started inside a
new visible window under Windows. And since we use shell=True, we pass
the command to execute as a string, as recommended by Python's docs
(also, it won't work when passed as a sequence anyway :) ).
Removed an unused import
Small stylistic change
New wrapper function around subprocess.Popen

New wrapper function around subprocess.Popen that handles stdin
correctly when on Windows (see issue #637)
Changed HEAD of third_party/frozendict (Create gitignore file).

This commit gets rid of annoying "modified: third_party/frozendict
(untracked content)" git status when *.pyc file was created inside
third_party/frozendict.
Merge pull request #745 from dzhioev/master

Changed HEAD of third_party/frozendict (Create gitignore file).
Merge branch 'fix-omnisharp-launch' of https://github.com/nop00/YouCompleteMe into nop00-fix-omnisharp-launch
Forwarding args for SafePopen to Popen directly
Revert "Not using Syntastic lazy redraw anymore"

This reverts commit 4d8fea4b2d29d89a7c3efc3eab0f0fd46cbc0645.

Since the commit we are reverting didn't resolve #669, we are reverting it to
fix #593 (again).
Preventing traceback for detailed diagnostic

Previously we'd show a Python traceback if the user asked for a detailed
diagnostic in a file that wasn't supported by Clang (something written in Python
perhaps). Now we show an nice, far less scary message informing the user of
this.

Fixes #748.
Handling vim.error from omnifunc

If the omnifunc encounters a syntax error, we need to handle this without
showing a traceback to the user.
Adding more include paths to YCM's ycm_extra_conf
Candidate overlap with buffer text improved

Now, "foobar.h" will be changed to insert "foo" if the text after the cursor is
"bar.h". This already worked for "foobar" and "bar", but the overlap search
would stop before a non-word character. This has now been resolved.
Optimizing overlap correction for common case

Most of the time there's nothing after the cursor.
Working around a Vim bug that causes flickering.

If the user had a hidden buffer and a recent version of Vim, the screen would
flicker every time the user typed. This was caused by a Vim bug.

On every key press, we end up calling GetUnsavedAndCurrentBufferData(), which
calls GetBufferOption( buffer_object, 'ft' ). If the buffer_object represents a
hidden buffer, Vim would flicker.

This would happen because we'd call "buffer_object.options[ 'ft' ]" in recent
versions of Vim, and that line of code causes Vim to flicker. I don't know why.
We're extracting the 'ft' value without going through buffer_object.options, and
that works just fine.

Fixes #669.
Replaced Syntastic support with YCM-native code

Currently, the only supported Syntastic features are the error signs in the
gutter. Other features will be added in the future.
Echoing diag text on when cursor on diag line