.functions: cross-platform o function

uses xdg-open when on Linux
uses open when on Mac