Refactoring of binding arguments.

The argument binding process is now in the CmdletArgumentBinder and separated from the CommandProcessor.
Failing tests for binding parameter objects as arrays.
Better parameter conversion.

Can pack single values to array, tries to convert and cast values.
Also, all array elements can be converted, e.g. int[] to double[].
Refactoring: Moved type conversion to LanguagePrimitives

I think LanguagePrimitives.ConvertTo methods should support conversion in the Extended Type System (ETS) of Powershell.
Although it's not really implemented, yet, that should be the correct place.
Added tests for type conversion.
Throw correct exception on impossible coversion
Non working tests for array conversions
converTo handles (recursive) conversion to arrays
Less duplicate code in parameter tests
Created plan for correct parameter processing
Implemented new parameter processing

Paraeters are now properly prcessed with regard to parameter sets,
default sets, mandatory parameters, and so forth.

Also, the structure is ready for some new features, which aren't implemented, yet:
* Gathering missing mandatory parameters by UI
* Using pipeline input object's properties to bind arguments
* Only allowing the first command of a pipeline to gather missing mandatory arguments
  from UI instead of taking them from pipeline

All provided tests work with this new structure, even some that have been explicit before.
Small Fixes
Added RefrenceTests that also run with PS

These tests can be used with Powershell to assure consistent behavior.
Therefore a new solution/project was added that links to the existing ReferenceTests
and exeutes them with Windows Powershell instead of Pash.

While the ReferenceTests all work with Powershell, they are still RED with Pash.
Behavior adjustments for reference tests

If a parameter set of a cmdlet is invalid, an exception
will only be thrown if it's intended to be used, not when it's loaded.
Otherwise Pash won't work correctly just because of one malformed
cmdlet.

Also, the Pipeline itself now stops working when there is a terminating error,
e.g. if a cmdlet uses ThrowTerminatingError or there is an parse error.
Catching and printing a broken pipeline is not part of the framework, but
just of the console. That's why this behavior is now in FullHost.

The ReferenceHost is now a separate class and should be used by both the
PS and Pash project.

To use the ReferenceTests with Pash, more projects/assemblies had to be added
to the project. This is an issue that should be resolved.
Better test, parameter lookup fixes, ErrorRecords

One of the reference tests actually tests if a parameter set is created
if it's only set as the default one but does not include any parameters.
The test was enhanced to test this behavior better.

The parameter lookup is now better as it checks for ambiguous parameters
in all parameter sets (as PS does) and tries real names and aliases first,
which is quicker.

Last but not least, RuntimeExceptions now always create an ErrorRecord if
requested for better error handling.

All existing reference tests work now also with Pash.
Small changes for modified pipeline error reaction

As terminating errors break the pipeline now, the TestHost has to handle
the errors. Another test was made explicit as it doesn't work now without
on-demand pipeline processing.
Refactoring: Splitting reference tests

Extracted the reference pipeline execution tests from the parameter tests,
added common base class with utility functionality.
Cmdlets are used in the tests by their type, not by using their name as a string.
This ensures typo-safety and makes debugging easier (navigating to the used cmdlet class).
Updated Powershell Reference Project

It uses now completeley the same files as the reference tests (also the
same ReferenceHost).
Added the new classes to the project.
Minor fix: Removed unused variable
Refactoring: Unified vocabulary used