bugfix for SPACK-20: add dependency bin directories to PATH

- Consolidated build environment stuff from package.py into
  build_environment.py

- package.py calls build_environment.py functions just before calling
  install(), in do_install()

- Organization is better b/c SPACK_xxxx environment variables are now
  in build_environment, the only place they're used.  Were previously
  cluttering globals.py.
Fix for SPACK-10: Spack now forks before install()

- this allows each install to have full control over its environment,
  and over spack.

- build process can do whatever it wants and doesn't affect main Spack
  process.
Merge pull request #6 in SCALE/spack from bugfix/SPACK-20-bin-directories-in-path to develop

# By Todd Gamblin
# Via Todd Gamblin
* commit '554ae9b3552a40ed253250bdebf548e4d8b01976':
  bugfix for SPACK-20: add dependency bin directories to PATH
Merge pull request #7 in SCALE/spack from bugfix/SPACK-10-fork-on-install to develop

# By Todd Gamblin
# Via Todd Gamblin
* commit 'b4fddad7eff448adf701fc9e88cf02cd6e582f15':
  Fix for SPACK-10: Spack now forks before install()
Better version wildcard handling, better spidering

- Allow version wildcards to match [_-.] instead of the exact separators
  the version was constructed with.
  - Handles the fact that boost versions are written both 1.55.0 and 1_55_0.

- Update spidering to handle parse errors and warn that Python < 2.7.3 has
  less robust HTML parsing abilities.
Status messages now show install and stage directories.
Better temp directory selection.

- Prefer tempfile.gettempdir(), then LC dirs like /nfs/tmp2
Fix SPACK-17: Remove install prefix if install() fails

- except clause now catches anything, not just exception

- sys.exit() changed to os._exit() to avoid interfering with unit tests
  and to avoid raising SystemExit exception when child processes quit.
Clean up commands and get rid of inconsistent --dirty options

- checksum  --dirty and create --dirty now changed to --keep-stage
- install   --dirty is now --keep-prefix
- uninstall --force now works properly

- commands use keyword args instead of package instance vars
  where possible (less weird package state)
SPACK-25: Add package for boost.  Works on Linux currently.
Merge pull request #9 in SCALE/spack from bugfix/SPACK-17-delete-install-dir-on-error to develop

# By Todd Gamblin
# Via Todd Gamblin
* commit 'b813b40c4fdccd593118024083f1e42b472f4e32':
  Clean up commands and get rid of inconsistent --dirty options
  Fix SPACK-17: Remove install prefix if install() fails
Merge pull request #8 in SCALE/spack from features/boost to develop

# By Todd Gamblin
# Via Todd Gamblin
* commit 'a0c91791c5ac995b80111a92c94d8fb760caa6e3':
  SPACK-25: Add package for boost.  Works on Linux currently.
  Better temp directory selection.
  Status messages now show install and stage directories.
  Better version wildcard handling, better spidering