ENH: Clean up icon usage

Create new "XSmall" icon size for 16x16 icons, enabling us to provide
separate 16x16 (e.g. menu) and 22x22 (e.g. tool bar) icon sizes. Replace
ugly undo/redo icons with icons from the (public domain) Tango[1] theme.
Replace home icon with its Tango version for better consistency. Create
a script to generate qSlicerBaseQTGUI.qrc, as manually adding as many as
five entries per new icon is unnecessarily awkward. Arrange to use
themed icons when possible.

(1: http://tango.freedesktop.org/Tango_Icon_Library)
STYLE: Fix spelling error in comment
BUG: Don't stop uninstall on first error

Change how we process scheduled extension uninstall operations to
continue trying to uninstall all extensions, rather than stopping the
process after the first error. The old behavior is a result of operand
order to the '&&' operator, which employs short-circuit evaluation to
skip evaluation of the second argument (the call to uninstall the
extension) if the first argument (the overall result 'accumulator') is
false, and was likely unintentional, due to overlooking the short
circuit evaluation.
ENH: Initial refactoring of extension manager UI

Refactor right corner area of extension manager into a .ui file, similar
to how the left corner area (navigation buttons) is already handled.
This allows us to have separate search widgets per tab (allowing for
independent search states, if/when support for searching installed
extensions is added), and also to add a 'configure' button (which we do)
that provides independent menus per tab.

The menus are created, but not yet functional. Icons (from the Public
Domain Tango theme) are also added. (The 'check for updates' icon uses
the theme pixmaps. Tango does not provide a 'configure' icon as such, so
the modified svg from which the pixmaps were generated is also being
committed.)

Issue #2089
Issue #2145
ENH: Add function to list archives

Add a function to vtkArchive.cxx to obtain the list of files in an
archive without extracting the archive. Also, fix parameter name in
(misnamed) extract_tar to make at least some kind of sense.
("archiveFileName", as in list_archive(), would be better, since
extract_tar likewise works on non-tar archives, but for now leaving it
consistent with the function name.)
BUG: Correctly encode archive file name

Use qPrintable() (which uses QString::toLocal8Bit() under the hood) to
encode the QString archive file name to char const* for passing to
extract_tar, rather than QString::toLatin1(), which is unlikely to
produce the correct bytes (the underlying system calls are more likely
to want system locale encoding) in case of a non-ASCII file name.

This sort of thing appears to be endemic to Slicer, but I don't care to
propagate that to the forthcoming call to list_archive(); thus, making
it consistent in this file at least.
ENH: Add ability to install extension from file

Hook up 'install from file' action in extension manager. Create an
overload of qSlicerExtensionsManagerModel::installExtension taking only
an archive file name, which uses the new list_archive method to
determine the extension name and then hands off to the existing method.
Modify the existing overload to cope with the lack of server metadata
that occurs in this case, and to fill in a sufficient subset from common
information (i.e. the os/arch/revision of currently running Slicer) and
the description file provided in the extension archive.

This should allow users to install extensions from externally obtained
archives of the same (e.g. manually downloading from the server with an
external web browser).

Issue #2145