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. 
This check for major-mode is repeated in `ycmd-notify-file-ready-to-parse`, and that bugs me a little bit. It seems like it really should only be in one place.

Actually, it might be better to get rid of explicit major-mode checks altogether. Now that you've implemented a minor mode, we can generally assume that none of the hooks and parsing will be run for files which aren't supported. If someone *does* do parsing on an unsupported file type, they'll just get an error from the server. How does that sound to you?