chatsecure: functions for detecting and copying to MTP mounts

This current functionality relies on GNOME's gvfs to mount the MTP device,
which is does automatically by default when an MTP device is plugged in.
For other OSes and GNU/Linux that doesn't use gvfs, a different approach is
required.

refs #1939
make simple copy function that plays nice with MTP

This is simple like shutil.copy(), but doesn't try to set perms or file
times, since MTP can be more limited.

refs #1939
standardize on Python 3 style print() function to avoid confusing code

This way we have the same print() syntax throughout the project, rather
than one way in some files and another way in other files.
make function to easily make backups of conffiles, for safe replacement

In order for KeySync to automatically sync, it needs to overwrite an app's
conf files.  This function can be run before overwriting any conf file so
that there is always a backup.

refs #1939
remove obsolete pip deps file, the deps are in setup.py now

refs #1884
refs #1870
only run Apple's plutil if actually running on Mac OS X

This lets us run the test script on GNU/Linux, since we include an XML
Accounts.plist file which does not need to be converted.

refs #1869
add test that merges all test files into each app's file, one at a time

refs #1884
refs #1888
convert all values to str so check_and_set() error message always succeeds