use xdg-open when available

`open` might work on OS X, but doesn't really exist elsewhere ­— this makes it work on your average Linux system and such [=