partial checkin
Make Compiler constructor behave like Spec constructor.
Sorted out spack.compilers vs var/spack/compilers
Implemented compiler concretization policy.
Add CompilerSpec class and loading capability.

- spack.spec.Compiler is now spack.spec.CompilerSpec
- Can load a spack.compilers.* module for a particular spec
	- e.g. load Gcc module for gcc@4.7 spec.
Better satisfies: e.g., v4.7.3 now satisfies v4.7

- Changed how satisfies() is defined for the various version classes
- Can't just use overlaps() with version lists -- need to account for
  more and less specific versions.

If the version is more specific than the constriant (e.g., 4.7.3 is more
specific than 4.7), then it should satisfy the constraint, because if
a user asks for 4.7 they likely do not care about the minor version.  If they
do, they can specify it.  New Version.satisfies() takes this into account.
Initial ability to swap compilers.

Fixes SPACK-16 and forces compiler script to build using compiler wrappers.

- works with gcc and clang on laptop.
Adding per-compiler python files
Move globals to spack's __init__.py
Move globals to spack's __init__.py
Proper exiting for forked process in do_install()
Add support for configuration files.  Fix SPACK-24.
Minor cleanup and bug fixes.
Make debug and verbose output work properly.
Compiler support now uses configuration files.

- no more need for compiler python files.

- Default compilers are found in user's environment and added
	to ~/.spackconfig automatically

- User can add new compilers by editing configuration file
Add working_dir, Version back into package build namespace.
Set default editor to vi if EDITOR is not set.
Make tests use mock compiler configuration.

- makes sure tests don't fail on systems that don't have some compilers (e.g. clang).
- more control over specific test cases for compilers.
Enable allow_no_value for config parser.

- Will be useful for, e.g., mirror lists.
- Previously didn't properly override regex used when no-value fields are allowed.
Executables can optionally ignore error output.