Support rerunning the installation script by restarting postgresql.

If postgresql was installed and started in a previous run, start causes:
Error: Service `postgresql` already started, use `brew services restart postgresql`

When developing changes to these scripts, it's important to be able to run and rerun this script without removing applications.
Merge pull request #235 from ManageIQ/support_reruns_where_pg_is_started

Support rerunning the installation script by restarting postgresql.
Refactor automated laptop tests to use rspec

Includes:

* A minimal gem, rake, and rspec environment
* The Distro class wraps up commands to test and provision vagrant boxes
* Publishing boxes to s3 has been simplified and improved
* Significant documentation updates

New laptop specs should now be significantly easier to write and understand.
brew-cask formula updated in README
Merge pull request #236 from endSly/patch-1

brew-cask formula updated in README
Install nvm and node on Mac laptops

Includes:

* Installing nvm via homebrew
* Adding node init stubs to .zshrc
* Installs node 0.10.28 and uses it by default
Clarify the simpler "vagrant init" way to spin up a prerendered box
Remove spaces in node_version variable definition.
Making brew installs commands work in idempotently
Extend and improve osx idempotency

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.
Remove ruby 2.1.1 conditional behavior for rbenv installation
Be more careful about nvm init in zshrc
Fix nvm package install
Merge pull request #241 from lodgem/fix-source-zsh

Fix nvm package install