Basic support for PSSnapIns

These commits introduce basic support for PSSnapIns. It focuses on snapins that only
add cmdlets to Pash. In the course of this support I made some small changes
and bugfixes to the SessionStateScope stuff. For example, it can check and compare items
correctly instead of relying on their name only.
Snapin handling was moved from the CommandManager to SessionStateGlobal. The way the default
snapins are loaded was refactored to be more usable and general, s.t. the functionailty can
be used for adding snapins in general.

What does currently not work is:
* Load Snapins in the Windows default way (by looking in the registry for installed snapins).
  It currently only works by passing paths to a snapin.
* Support for provider snapins. Although The basic support was implemented, s.t. it *could*
  work in general, it isn't tested in any way. Some known missing features for provider support
  are marked in "TODO:"s with the #providerSupport tag.