Implement ycmd-minor-mode

Implement a minor-mode for ycmd. The mode adds hooks in order to have different triggers for a reparse. With the `ycmd-set-needs-parse` list the user is able to control when the buffer should be marked for reparsing. For now `save` and `new-line` or manual reparse is supported, but might be extended for other methods like an idle-timer. 
I'm a bit suspicious of this function. How is this an improvement over the user just switching to the server buffer normally? Is this something that anyone does so often that it needs a function?

I want to avoid keeping around a lot of YAGNI code, but I'm happy to be convinced that this is actually important to have.