update the edit dialog to remove shortcuts conflicts
display shortcuts conflicts directly in the dialog.

shortcuteditdialog take 2 new optionnal arguments:
* conflictCallback: a function or methode that return a shortcut
conflict name.
* cbArgs: the optional arguments to pass to conflictCallback
add a _num attribute
comment lines that remove the Shift modifier

with its lines when a special character is pressed (é, è, ç), the
equivalent of a QWERTY keyboard is sent.
add "setShortcuts" method
replace "editAction" by "findShortcutConflict" and "removeShortcuts"
add the findShortcutConflict method
set default shortcut to None if it is an empty list
remove unused import
Merge pull request #245 from uliska/improve-no-git-message

vcs: Add reference to Preferences to the no-git-found message box
Merge pull request #238 from elmamyra/shortcuts-conflicts

show shortcut conflicts directly in the shortcut dialog
upd chlog
conflict apply the detection of shortcut conflicts to snippet menu
apply the detection of shortcut conflicts to quickinsert buttons
Merge pull request #246 from elmamyra/shortcuts-conflicts

update shortcut conflicts
VCSRepo: Add abstract fetch() method
Make _run_git_command() more flexible (error handling)

As it seems Git commands are quite 'versatile' with regards
to their output on stdout and stderr ;-)
Therefore it seems better not to raise exceptions in the
basic _run method, even if that means more and some
redundant code in the higher-level caller functions.

_run_git_command() now returns a tuple of
- the stdout result (formatted as a list of strings)
- the stderr output.

Calling functions should handle the presence of 'error'
themselves, deciding whether to raise an exception or not.
VCS: Cosmetic touch to git checkout
VCS: Implement git fetch

Currently only works when the user has configured git
so it doesn't need interaction (e.g. passwords) when
communicating with the remote server.

Simply passes stderr output to the caller, so the calling function
(e.g. in the GUI) has to determine if an 'error' is regular info
output or indicates an exception
VCS: Add differing_commits() method

Compare local with (already fetched) remote branches.
Return
- remote_branches (that aren't present locally)
- local_branches (that aren't present remotely)

Can be used to determine the need of updates