Restart shell after mac script finishes

* Assure installed items and env vars apply.
* Fixes https://github.com/thoughtbot/laptop/issues/63.
Manage Heroku CLI with Homebrew

https://github.com/thoughtbot/laptop/pull/67
Mkdir /usr/local for Homebrew if it doesn't exist
Merge pull request #69 from thoughtbot/ctoomey-mkdir-homebrew

Mkdir /usr/local for Homebrew if it doesn't exist
Use rbenv to change Ruby versions

* Use Homebrew consistently for OS programs.
* Use ruby-build to install Rubies.
* Include auto-switching of Ruby in `~/.zlogin`.
* Upgrade Rubygems after Ruby is installed. This is to help avoid common
  Bundler/Psych issues:
  https://github.com/tenderlove/psych/issues/66
* Use newest Bundler version in order to work with latest Rubygems.
* Use rbenv-gem-rehash so the shell automatically picks up binaries
  after installing gems with binaries.
Add new libraries to README
Alphabetize libraries in README
Force gcc-4.2 compiler when installing Ruby

Avoid errors like:

    st.c:520:35: error: implicit conversion loses integer precision:
    'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
    i = table->num_entries++; ~ ~~~~~~~~~~~~~~~~~~^~

https://github.com/sstephenson/ruby-build/issues/287
Install Hub gem

* Used by Suspenders' `--github organization/project` flag.
* `hub merge http://github.com/organization/project/pulls/123` for
  merging pull requests in open source projects.
* `hub browse` for opening the branch in a web browser.
* `hub pull-request` to create a pull request for the feature branch
  you're working in.
* Lots more.
Install The Silver Searcher instead of Ack

https://github.com/ggreer/the_silver_searcher

* ag searches faster than ack
* ag searches all files by default (but still ignores gitignored files).
  This removes the need for ack's --type-add= options.
Fix rbenv install

Error was:

    command not found: CC=gcc-4.2

* Set shell to Ruby 1.9.3 after installing it to make sure the following
 `gem` commands are using the correct Ruby.
* Use easier-to-read `--no-document` flag.
Begin porting to ubuntu
Debian derivative support for the Laptop script

This implements support for:
* Ubuntu quantal
* Ubuntu precise
* Debian wheezy
Fix OSX zsh environment bug

* This a known bug discussed [here](https://github.com/sorin-ionescu/prezto/issues/381).
Encourage users to read script before running it

* Wrap lines at 80 characters.
* Use colons to mean "run the command on the next line."
Use conventional zsh dotfile names

* move rebenv initialization from .zlogin to .zshrc
* rbenv documentation recommends .zshrc
* less files for us to manage in our home directory

* use zshrc instead of zprofile
* zprofile is just an alternative for ksh fans [source](http://zsh.sourceforge.net/Intro/intro_3.html)
* Tim Pope recommends moving /etc/zshenv to /etc/zshrc [source](https://github.com/tpope/vim-rbenv)
Restart shell as login shell after rbenv

Move `exec $SHELL -l` line to spot recommended by [rbenv README][1].

Resolves [#77][2], where users would see errors like:

    Updating rubygems-update
    ERROR: While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /Library/Ruby/Gems/1.8
    directory.
    failed
    Installing critical Ruby gems for Rails development ...
    ERROR: While executing gem ... (OptionParser::InvalidOption)
    invalid option: --no-document
    failed
    Installing GitHub CLI client ...
    ERROR: While executing gem ... (OptionParser::InvalidOption)
    invalid option: --no-document
    failed

[1]: https://github.com/sstephenson/rbenv/
[2]: https://github.com/thoughtbot/laptop/issues/77
Don't open browser

* Opening the browser can surprise people.
* Use gerund in nearby command output.
Fix idempotence

Good catch by @gabebw:

https://github.com/thoughtbot/laptop/pull/88/files#r3739434
Remove unnecessary steps

* Permission fixing used to be necessary but Homebrew fixed this in this
  commit:
  https://github.com/mxcl/homebrew/commit/8aa4f9dd3bbd885350776171d3d9403d381e1a59
* Certain system libraries used to be necessary for Ruby 1.9.3 when we
  were on RVM, which enforced certain requirements:
  https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/requirements/osx_brew#L93
* Improve printed output with newlines separating commands.
* Add more idempotent checks.
* Don't restart script in the middle of the run.
* Stick to `~/.zshrc`, not `~/.zshenv`.
* Finish script with preparation of `~/.zshrc` for thoughtbot/dotfiles'
  `install.sh` script.
* Add `fancy_echo`.