Various fixes and improvements

Sorry for just having a single big pull request, if you want to have some commits singled out as separate pull request, I can do that (just tell me which ones you want).

This basically gives you:

* Update the UI at least after each file (process events)
* Better running of processes (and parsing their output), no need to use the shell or quoting
* Make the task queue FIFO (was LIFO)
* Only create directory on the device when needed
* Recursive copying and deletion should do proper progress reporting
* Fix panels paned width calculation (was wrong for me on Fedora 20)
* Don't re-implemented "copy to computer" logic for the context menu
* Use a Gtk main menu instead of a single checkbox (for hidden files)
* Support for having multiple devices connected (+GUI for selecting)
* Show free disk space of current directory on device
* Refresh device list menu item, and "no devices found" handling

I didn't take too much care about making sure this works on Windows as well (device path handling), that could be done, but haven't gotten around to doing it yet (just scratching an itch here).

Ideally I'd like to see all commands being run in a separate thread, so that the UI never blocks. And while there's no progress indication for long-running adb push/pull commands (e.g. pushing or pulling a 50 MiB file), it might be nice to parse adb's output, remember the "best" transfer rate for the device in the session and then based on file size and expected transfer rate, come up with a way to display "in-file" progress. This is not perfect, but might make the experience better (well, faking fine-grained progress information) than just updating the progress bar after every file.