Make module manifest compatible with PS 2.0
Get-KnownFolder: add script tests, refactor tests
Add .NET 4.0 / PS 3.0 test project

Because of slight behavior differences (e.g. in enum parsing), some tests,
which passed under CLR 2.0 / PowerShell 2.0, fail under CLR 4.0 / PS 3.0.

Example: although the strings 'MyDocuments' and 'Personal' are parsed to
the same System.Environment.SpecialFolder enum value, under CLR 2.0 the
value converted back to a string is 'Personal', while under CLR 4.0 it is
'MyDocuments'.

To ensure correct behavior, the tests must be run under both CLR and PS
versions, so two projects are needed. The namespaces are altered (using
conditional compilation) to facilitate distinguishing between identically
named tests from both projects in the Test Explorer.

Visual Studio introduces a slight complication. When it is instructed to
run tests from both projects at once, it starts only one test execution
process, using CLR 4.0. To detect this, the test projects verify the
environment version (CLR and PowerShell) and raise an error if it is
invalid.

To run all tests under their expected environments, first run all tests
from one project, then from the second project.
KnownFolder: fix obtaining user Documents folder by enum on .NET 4

SpecialFolder.Personal and SpecialFolder.MyDocuments have the same value,
ToString() of which returns 'MyDocuments' on .NET 4. Make sure to use the
correct name of the known folder, which is 'Personal'.