widgets.main: rework the menu actions

s/menu_(\w+)/$1_action/g and rename `new_repository` to
`new_repository_action` for consistency.

Reorder the File menu and add an icon for "Open Recent" so that
everything lines up.

Signed-off-by: David Aguilar <davvid@gmail.com>
widgets: do not set window modality without a parent

Dialogs with a modality of Qt.WindowModal must always have a parent.
When these are run from the top-level, e.g. via `git cola grep`, then
the parent is `None` and we should not use Qt.WindowModal.

Signed-off-by: David Aguilar <davvid@gmail.com>
qtutils: rename open_dialog() to open_file()

Signed-off-by: David Aguilar <davvid@gmail.com>
core: add an encode wrapper for os.walk()

Signed-off-by: David Aguilar <davvid@gmail.com>
browse: GitTreeWidget does not need `ref` in its constructor

Signed-off-by: David Aguilar <davvid@gmail.com>
qtutils: add reload_icon(), add_icon(), and remove_icon()

Signed-off-by: David Aguilar <davvid@gmail.com>
qtutils: add open_files() function

Add a convenient wrapper around QFileDialog.getOpenFileNames().

Signed-off-by: David Aguilar <davvid@gmail.com>
main: add "Apply Patches" to the file menu

Add a new "Apply Patches" dialog that can be triggered from the file
menu.  This replaces the drag+drop functionality that was originally in
the main interface and moves it into a dedicated dialog.

Closes #215

Suggested-by: Kevin Kofler <Kevin@tigcc.ticalc.org>
Signed-off-by: David Aguilar <davvid@gmail.com>
doc: update v1.9.4 release notes

Signed-off-by: David Aguilar <davvid@gmail.com>
cola: add "git cola am" sub-command

Add a command-line entry point to the "Apply Patches" dialog.

Related-to: #215
Signed-off-by: David Aguilar <davvid@gmail.com>