Enhanced cmdlet parameter processing & Powershell reference tests

The major intention of these pull request is to drastically enhance the processing of cmdlet parameters.
Parameter binding is now done by a separate binder class and type conversion is part of the LanguagePrimitives.

The new parameter processing should include anything that is needed: From interfaces that support UI request for unbound mandatory parameters, over intelligent parameter set selection up to interfaces for ValueByPipelineByPropertyName support.

Requesting mandatory parameters and ValueByPipelineByPropertyName support aren't included in this commit, but should be very easy to implement in the specific functions (which simply do nothing now).

I investigated the way the parameter binder works by various tests in Powershell and some own ideas.
While I did all the tests, I asked myself why I'm typing them in a PS console, when I can use unit tests for it.
So I started to write a test suite with some tests that show important characteristics of parameter binding.
I decided to integrate those tests in the Pash project, so I can later on check whether Pash behaves in the same manner as PS does.

Last but not least I added a simple VS project to Pash which only keeps references to the new tests and executes them with Powershell instead of Pash.

The idea is to collect tests also in the future, that can be exeucted with Powershell as well as with Pash that guarantee equal bahvior.