ShouldUseNow now takes a current_line param

This is now used instead of examining the vim.current.line property.
Minor code style fixes
Indentation fix
Reordering some YCM init logic
Now more explicit about accessing user options

We don't inspect the Vim process anymore when we want an option; we parse the
options on startup and then use that data structure.
Adding the frozendict module

Upstream: https://github.com/slezica/python-frozendict
Deleting some dead code
Completer access now through CompletionRequest

This will make it easier to put Completers in the server.
Decoupling completers from Vim; still WIP & broken

Note to self: squash this commit before merging into master.
Encoding data to utf8 if 'unicode' object

ycm_core only deals with utf8 and the functions only accept python string
objects.
More python unicode object support in ycm_core
Identifier completer now fully decoupled from Vim
Code typo fix
Using os.getcwd instead of getcwd from vimscript
Bump ycm_core.so API version
Converting Jedi unicode data to strings
Updating Jedi to v0.7.0
Deleting a stray 'print' statement

This was put in for debugging at some point.
extra conf store now vim-free
A (barely) working version of ycmd + client

Still a lot of work to do.