API docs for ThreadedCompleter
Including `:` in the command names in docs

This will ensure the correct tag is used when we process readme to create the
vimdoc help file. See #330.
Updating vimdoc from README

Fixes #330
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.