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. 
Yes, I agree. The check for major-mode should not be repeated but removing them altogether should be a different refactoring task.