Preventing possible TypeError with StringVec

It was possible to get a traceback if results[ 'flags' ] was a StringVec; the
code would try to perform results[ 'flags' ] += self.special_clang_flags and
this would then fail because the clang flags would be a Python list.
Fix breakage of some compile_commands.json users

Depending on the user, the PrepareClangFlags rewrite of a few commits ago could
break users with an extra "clang: 'linker' input not used" (or similar) error
message because the compiler executable string was not removed from flags
upstream if the user prepended some flags to the output of PrepareClangFlags
before returning it to the caller of FlagsForFile.

Since the rewrite was supposed to be backwards compatible, this needs
to be handled.
Adding the ClearCompilationFlagCache subcommand

With this command the user can clean the in-memory cache of the compilation
flags that the clang completer uses.
Small README doc rewording
Some docs for CandidateRepository
Better thread safety in IdentifierCompleter

Everything that needs access to filetype_map_ has been split into a new class
called IdentifierDatabase. This class is thread-safe. Previously, multiple
threads could access filetype_map_ at the same time, some reading things from
it, others writing to it. WTF was I doing? My best guess is that I introduced
this vile stupidity when I added the second thread to IdentifierCompleter;
previously it was impossible for multiple threads to stomp on filetype_map_
because only one thread ever accessed it. I changed that some time ago and
forgot to protect filetype_map_.

Idiot.
fix 404 in README link
Merge pull request #340 from JazzCore/fix_404_error

Fix 404 in README link
Added missing include to build on win32
Merge pull request #344 from svermeulen/CppCompileFix

Added missing include to fix the CPP build on win32
Not adding -Werror and friends for Xcode
Adding Boost.Assign to BoostParts
More tweaks for building with Xcode
Xcode needs special testdata folder handling
The identifier completer now reads tags files

See the docs for details. Fixes #135.
Updating vimdoc
Using our command_exists func to check for brew

Fixes #341.
Can now seed identifier database with keywords

By toggling the g:ycm_seed_identifiers_with_syntax option, the user can now tell
YCM to seed the identifier database with the language's keywords.

This is off by default because it can be noisy. Since the identifier completer
collects identifiers from buffers as the user visits them, the keywords that the
user cares about will already be in the database, regardless of the state of the
new option. So the only keywords added will be the ones the user is not using.

Meh. But people want it so there.

Fixes #142.
Updating vimdoc
Listing the ctags options YCM needs