Making sure that <C-Space> works in console Vim

Fixes #256.
FilterAndSortCandidates returns all on empty query

Previously it returned an empty list. It makes mores sense to return the input
list of candidates because conceptually everything matches an empty query.
Add general completers support
Add general UltiSnips snippet completer
Refactoring ycm_extra_conf handling into module
Supporting YcmCorePreload logic

Now the user has the option of writing custom logic before ycm_core.so is
loaded. This can be used to dynamically change the location of where ycm_core.so
is loaded by prepending paths to sys.path.

Very, very few people will need this feature, but I'm one of them so there.
FAQ entry about too old system glibc
Version string in FAQ question now less specific
Add general filename completer & other stuff
Rewriting the code from the pull request

This implements the filename completer and introduces integration with
UltiSnips. The user will now see snippets in the completion menu. After
selecting a snippet, the user should invoke the UltiSnips trigger key
(which should be changed from the default of TAB) to trigger the snippet
expansion.

Fixes #77, Fixes #36
User can now pick the root for relative paths
Filename completer now uses threads

This was done by introducing a new ThreadedCompleter class that descends from
Completer. Both JediCompleter and FilenameCompleter descend from
ThreadedCompleter.
Merge branch 'JazzCore-general_completers'

Conflicts:
	python/ycm.py