Rafactor construct candidate functions
Rafactor construct candidate functions

Generate all metadata in construct-candidate functions in order to
simplify company-meta/annotation/post-completion functions. They only
call get-text-property to get a property instead of various text
manipulations. Also simplify construct-candidate-python function. Move
detailed-info to doc buffer and show only one letter for information
about completion kind. Also handle ycmd filename completion
consistently for all file types.

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