Add the ability to disable clang_complete.
Activate clang_complete for C file sub-types

Since I often write documentation with Doxygen, I automatically set doxygen file sub-type for C files. As a result, vim doesn't activate clang_complete.
This patch fixes problem for doxygen and all others sub-types.
Merge pull request #375 from rasendubi/patch-1

Activate clang_complete for C file sub-types

When writing documentation with Doxygen, some people automatically
set doxygen file sub-type for files. As a result, vim doesn't activate clang_complete.
This patch fixes problem for doxygen and all others sub-types.
Remove incompatibility issues with UltiSnips
Merge pull request #377 from rasendubi/master

Remove incompatibility issues with UltiSnips
Merge pull request #324 from Rip-Rip/disable-clang_complete

Add the ability to disable clang_complete.
Improvement to logging when loading libclang fails

Problem
-------

libclang failed to load on OS X Mavericks with XCode 5.0.1 and the existing logging proved insufficient to track this down.

See http://stackoverflow.com/a/20645984/78845 .

Changes
-------

- Improve logging when loading libclang fails
- Add exception to error message in debug mode.
- Add check for non-existent string
- Squash strings together, since Vim will print multi-line strings but
  only displays the first string if multiple strings are emitted, using:

```
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 19 2013 20:22:55)
MacOS X (unix) version
Included patches: 1-52
Compiled by Homebrew
```
Merge pull request #357 from johnsyweb/better_logging

Improvement to logging when loading libclang fails
Allow not mapping keys by default
Merge pull request #360 from suy/compatibility

Allow not mapping keys by default
Split clang option arguments using POSIX standard.

Uses Python standard library's `shlex` class to provide
accurate option parsing. It also prevents options quoted using
single quotes from being mishandled. i.e. The quotes are stripped
as expected.

Escaping using the escape character `\` is not supported at the
moment due to the clang_complete.vim converting all backslashes to
forward slashes (which is incorrect behaviour I might add).
However this is consistent with the current behaviour regardless.
Use shlex.split() instead of list(shlex.shlex())

Previously used `list(shlex.shlex(options, posix=True))`.
It turns out this is exactly the same as calling:
`shlex.split(options)`
So I did that instead because it's much cleaner.
Option splitting logic is now different for Windows

This change should allow for backslashes in the future. It also means
option splitting will work similarly to the native command environment.

Minimum python version increased to 2.6.

Note that cygwin python environments will use posix style option splitting.
Merge pull request #383 from Andrew-Dunn/argument_escape_handling

Split clang option arguments using POSIX standard.
UltiSnips_Manager._snippets no such attribute #382

Refactor code because of an api change in UltiSnips_Manager
Prevent vim from hanging on exit

Until now, vim would hang on exit to wait for the warmup thread or other
completion threads to finish. This can cause an annoying 1-5 seconds
delay when exiting vim. We address this issue by manually closing the
current buffer and then directly killing vim. This is a little hackish,
but we unfortunately do not have any control over running clang threads.
As we close all buffers in advance, the risk that we loose something by
killing vim is minimal. The only remaining annoyance is that vim prints
'Killed' on exit. I doubt there is a lot we can do about this.
Merge pull request #387 from abrausch/master

Fix ultisnip snippets #382
Merge pull request #389 from tobig/kill-bg-thread

Prevent vim from hanging on exit
Merge pull request #1 from Rip-Rip/master

merge