First changes towards new scope (not working, yet).

The SessionStateGlobal was used as the central, static class to hold information about variables, aliases, etc.
However, in PowerShell specification, scopes exist. Therefore we differentiate between things that are globally
available affected (like providers), and those which are affected by scopes - namely: aliases, functions, drives
and variables. The latter ones will be handled in the new class SessionStateScope which supports a hierarchy
(via parentScope). PSVariableIntrinsics now really does the work instead of just calling functions in
SessionStateGlobal. It now checks the variable name for scope specifiers and makes sure the coorect variables
are affected. It also checks for constant/read-only options as intended by the Powershell specification.

There are still many things left to be changed: the other intrinsicts, aliases, etc. Also the integration
of the new classes and functionality must still be done before Pash can be compiled and run again.