Initial commit to replace menu by Checkbox menu.
Add option to add all the users.
Merge remote-tracking branch 'origin/develop' into users-menu
Add/remove users to tree.
Allow to remove logged-in user from the display.
Enabled selection if no user displayed.
Add selection icon.
Do not allow group selection in user view.
Review the group menu in group display view.
Replace 16x16 icon by 8x8 icon.
Do not visit the browser when groups >1.
Fix selection of users in menu.
Remove the last group.
Make the group menu selectable.
Modify controls used to display groups/users menu.
Fix header of ImportLibrary
Refactor uploadFile to FileTransfer

The uploadFile method has a number of responsibilities
that were not easily modifiable. Rather than insert
further `if (symlink) {} then {}` complications, its
been extracted behind the new `FileTransfer` interface
to permit others to inject their own logic.
Add trivial log statement
Refactor to use TransferState

The number of parameters passed to the `transfer` method
was daunting at best. Further, much of the uploadFile method
was doing logging so that moving the execution into the state
class, the FileTransfer implementors can be ignorant of most
of the arguments.
Refactor out AbstractFileTransfer for SymlinkFileTransfer

The rest of the reusable logic from uploadFile has now been
moved to AbstractFileTransfar and re-used by the new
SymlinkFileTransfer class.

Several remote-access methods were needed in the ImportLibrary
itself, though these could perhaps live in a more general
gateway-style utility.