It's time to deprecate the clang binary code path.
Fix header regexp.
Merge branch 'deprecate-non-libclang'
Replace call to vim.eval/command to vim python API.

This is easier to read, and may be a bit faster.
Use the 'with' syntax with the libclangLock.

This removes the .acquire() and .release(), and avoid potential lockups
if the code wasn't guarded by try catch.
Fix indent.
Fix initialisation of the compilation database.

If g:clang_use_library wasn't set in the .vimrc, the use of compilation
database would generate an error.
Remember the last compilationDatabase query, and return it when the file is not found

This is a very common case : it happens for all headers. In practice, this heuristics gives good results.
Document the behaviour of getCompilationDBParams when a file is not found in the compilation database
Fix a problem in objc complement

If the method has some args, complement result is bad.