Added and explicit command to initialize and name an Environment

This doesn't too much right now, but it needs to be explicit act for a user
to create an environment.
Add a contextmanager helper for environment save/restore

It's nice to be able to use the python with statement to emulate RAII from
C++.
First implementation of the toolset concept

This is a basic working implementation of the toolset concept.  It lets
users define dependencies which are not as firmly fixed but still
specified.  They are generic terms like "c-compiler" and "linker" which the
current toolset will supply.

When package version constraint support is implemented you will be able to
supply limitations on the implementation versions for each generic package.