osx idempotentcy fixes based on chrispwood's PR.

Includes:

* Fix the "brew_install_or_upgrade" function, use it for all components
* Remove executable perms
* Skip installing an already installed ruby

Technically re-running laptop is not idempotent in that it will upgrade
brew-installed items and potentially install a new ruby. I feel this is
expected and wanted.
'-s' skips installing already installed rubies.