company-ycmd: When disabling fuzzy matching omit non-prefix candidates

When setting company-ycmd-enable-fuzzy-matching to nil, do not add
non-prefix candidates to candidates list. Add also a new defcustom to
control company-mode's no-cache feature.
This logic seems wrong. If the user sets `enable-fuzzy-matching` to true, they should expect to get fuzzy matching, but now it seems that they have to set `no-cache` as well. This seems both confusing and unnecessary.

I guess my main concern is similar to what I touched on above: users will reasonably care about "fuzzy matching" but not about "caching". I'm not convinced that they need to be able to explicitly control caching like this. But if you've got a compelling use-case, I could be convinced.