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.
The `|| echo` should be preventing the trap, not the subshell. `|| true` is also an option