Fixing rare hang issue with ultisnips completer

The issue was that AsyncCandidateRequestReady in the ultisnips completer would
always return false if there were no snippets for the current filetype, leading
to an infinite loop in CompletionsForQuery.

Fixes #270.
Use OnBufferVisit in ultisnips completer

This is instead of OnFileReadyToParse which is called every time the users stops
typing.
Force filename completer on #include
Filename completer now uses include paths

It's also smart enough to trigger filename completion right after '#include "'.

Fixes #261
Separate options for completion in string/comment

We want to turn on completion in strings by default, but not for completion in
comments.
Including current file dir for #include "" form

Relevant to issue #273
fix UnicodeEncodeError in ultisnips_completer

Fix a rare exception when a description of UltiSnips snippet contains
unicode symbols.

Fixes #274
Merge pull request #276 from JazzCore/ultisnips_unicode

fix UnicodeEncodeError in ultisnips_completer
Fixing minor regressions from general store commit

A few Completer methods that should have been forwarded to general completers
were not. This broke the identifier completer picking up the current identifier
right after it's typed in.
port ycm to python3

Signed-off-by: Simon Gomizelj <simongmzlj@gmail.com>