Made company work better with ycmd completion data.
Made company work better with ycmd completion data.

Company works by replacing prefixes with completion candidates, while
ycmd simply reports back a start position for completion candidates. It
turns out that they don't always agree on where things start. This
change attempts to fix this by determining where a prefix starts and
combining that with information on where a candidate starts in order to
ensure that candidates are inserted in the right place.

emacsmirror/ycmd,abingham/emacs-ycmd,phst/emacs-ycmd,ptrv/emacs-ycmd,ptrv/emacs-ycmd,abingham/emacs-ycmd,abingham/emacs-ycmd,phst/emacs-ycmd,ptrv/emacs-ycmd,abingham/emacs-ycmd,ptrv/emacs-ycmd,ptrv/emacs-ycmd,ptrv/emacs-ycmd,emacsmirror/ycmd,emacsmirror/ycmd,phst/emacs-ycmd,emacsmirror/ycmd,phst/emacs-ycmd,phst/emacs-ycmd,emacsmirror/ycmd,abingham/emacs-ycmd,abingham/emacs-ycmd,phst/emacs-ycmd,emacsmirror/ycmd