Return value of modify_build_environment is unimportant
Iterate over these directly rather than mapping first
Replace long conditional with guard clauses
Use each instead of while loop
Correct comment
Keg should link symlinks directly.

If the `src` in the Cellar of a formula is a symlink to another dir
in the same Cellar (for example `Frameworks/QtGui.framework` is a
symlink to `lib/QtGui.framework`), then we should make a symlink
directly instead of possibly creating an empty dir.

This is needed because Ruby's `find` does not follow symlinks (newer
versions can, but we have to support 10.8 for a long time).

Currently this probably only occurs for Qt, where we put symlinks
into the Cellar/Frameworks and the frameworks linking code is a bit
special to create a directory to "merge" together different versions
of the same framework from different formulae. See `python` and
`python3`; both install `Python.framework` and only one can be the
`Current` but the other should still be put into
`Python.framework/Versions`. Therefore `Python.framework` has to
be a dir and no symlink.
Boost: enforce '--with-mpi' with '--without-single'

* Building MPI support for both single and multi-threaded flavors will
  result in duplicated rules for mpi.so.  Upstream bug report
  https://svn.boost.org/trac/boost/ticket/8841.
* Require '--with-mpi' be used together with '--without-single' until
  this is fixed.
brew reinstall: Reuse options from last time

Now, we can finally stop stuggesting to
    `brew rm <foo>` and then `brew install <foo> <with-your-preferred options>

So `brew reinstall` will honor all options that have been recorded
into the INSTALL_RECEIPT.json plus if `--build-bottle` was used.