Fix bug with [File] being shown instead of [Dir]

This is for filename completion in the case of C-family include completion. The
path was being assembled incorrectly so os.isdir() was getting the wrong path
and then could not see was it a directory.
ycm_extra_conf.py file now in the public domain

It was never supposed to be licensed under the GPL since it's effectively
example code (that's also used for YCM compilation flags, but still).

No one has ever edited this file except me, Strahinja Val Markovic, and thus I
can release it into the public domain.
pyflakes checking for Travis build bot
Minor refactoring for simplicity
Adding complexity check to flake8 call
Stopgap for unicode chars in filename strings

Such filenames still can't be matched against, but at least we won't throw an
exception when it happens.

Fixes #279, relevant to #278
Not adding -Wc++98-compat on FreeBSD

Fixes #260
Fix ranking bug with ALL_CAPS variables

GetWordBoundaryChars would return "allcaps" for "ALL_CAPS" instead of "ac". This
would manifest as ranking (for instance) "STDIN_FILENO" ahead of "stdin" for
query "std", which is terrible.

This bug has been present in YCM for many months, but no one noticed the issue.

Fixes #272.
Fix error on YcmDebugInfo in quickfix window

Fixes #283
fix compiling with clang on Windows

This fixes a Visual Studio problem when it cant correctly select
bind and make_shared boost methods due to Argument-dependent name lookup.

Relevant to #19
Merge pull request #285 from JazzCore/windows_fixes

fix compiling with clang on Windows
Updated vimdoc from readme