implement MTP detection and syncing for Mac OS X, which has no MTP support

pymtp/libmtp provide the MTP support, we also have to think about Google's
Android File Transfer app, since its also a libmtp app, and it will
conflict with KeySync.

refs #1939, #1967, #1968, #1870
keysync-gui: constantly check whether the Android device is available

This allows the GUI to represent the available actions based on whether
the Android device is currently attached or not.  It also provides clear
feedback when the user plugs the Android device in (the GUI changes).

refs #1939, #1967, #1968
keysync-gui: detect Android File Transfer and prompt to close it if running


refs #1892, #1967, #1968, #2000
keysync-gui: only show the QR Window if the sync/copy was successful

refs #1967, #1968
catch exception if a process disappears when we're trying to probe it

There is a time delay between when psutil.get_pid_list() returns the list
of pids, and when each pid it probed.  In the meantime, one of those pids
could point to a process that has terminated.  In that case, an exception
is thrown that needs to be caught.
keysync-gui: if syncing fails, show error page, disable GUI, and quit polling

refs #1967, #1968
keysync-gui: rename show_sync() to show() now that it shows everything

Before, show_sync() only showed the sync screen, now its the central method
for choosing what it shown in the main window, so a more general name makes
more sense.

refs #1967, #1968
keysync-gui: make QRcode show in main window

Since everything else shows in the main window, the QRCode should too. It
makes it clear that this is the final step in the process, since there are
no other steps possible after the QR Code is showing.

refs #1967, #1968