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 think this check is a bad idea. One of the main use cases I've personally got for switching to the server buffer is that I'm working on `ycmd.el` itself and want to see what the server is doing. If we keep this function, and if I start using it, then I'll be frustrated to find that it doesn't work in elisp mode.