Improve prelude-open-with

Now it uses `xdg-open` where it makes sense. It also accepts a prefix
argument that forces manual selection of a command to run.
Don't try to save files when you don't have the permissions to do so
Merge remote-tracking branch 'upstream/master'