Modern linux desktop way of determining browser

Uses xdg-open for generic browser on linux platforms
ido customizations plus vertical menu

mostly cribbed from purcell iirc
php- and web-mode indentation changes