Allow cmdlet import when default parameter set is AllParameterSets.

Cmdlets that define the DefaultParameterSetName to be
ParameterAttribute.AllParameterSets cannot be imported by Pash.
One example is the Get-Package cmdlet that is included with NuGet.

    [Cmdlet(VerbsCommon.Get, "Package",
        DefaultParameterSetName=ParameterAttribute.AllParameterSets)]
    public class GetPackageCommand : NuGetBaseCommand
    {

Importing such a cmdlet into the session state an 'An item with the
same key has already been added.' error displayed.

    var initialSessionState = InitialSessionState.CreateDefault();
    initialSessionState.ImportPSModule(moduleToImport);

   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at System.Management.Automation.CmdletInfo.GetParameterSetInfo(Type cmdletType) in Pash\Source\System.Management\Automation\CmdletInfo.cs:line 200
   at System.Management.Automation.CmdletInfo..ctor(String name, Type implementingType, String helpFile, PSSnapInInfo PSSnapin, ExecutionContext context) in Pash\Source\System.Management\Automation\CmdletInfo.cs:line 47
   at Pash.Implementation.CommandManager.<>c__DisplayClassb.<LoadCmdletsFromAssembly>b__8(Type type, CmdletAttribute cmdletAttribute) in Pash\Source\System.Management\Pash\Implementation\CommandManager.cs:line 183
   at System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
   at Pash.Implementation.CommandManager.LoadCmdletsFromAssembly(Assembly assembly, PSSnapInInfo snapinInfo) in Pash\Source\System.Management\Pash\Implementation\CommandManager.cs:line 184
   at Pash.Implementation.CommandManager.LoadCmdletsFromAssemblies(IEnumerable`1 assemblies) in Pash\Source\System.Management\Pash\Implementation\CommandManager.cs:line 195
   at Pash.Implementation.CommandManager.ImportModules(IEnumerable`1 modules) in Pash\Source\System.Management\Pash\Implementation\CommandManager.cs:line 205
   at Pash.Implementation.LocalRunspace.InitializeSession() in Pash\Source\System.Management\Pash\Implementation\LocalRunspace.cs:line 196
   at Pash.Implementation.LocalRunspace.Open() in Pash\Source\System.Management\Pash\Implementation\LocalRunspace.cs:line 147
Use default parameter set if it is the AllParameters set.

With a cmdlet specifying the default parameter set to be the
AllParameters set, when the parameter binding is ambiguous
, the default parameter set was not used if it is the
AllParameters set.

    [Cmdlet(VerbsDiagnostic.Test, "MyCmdlet",
        DefaultParameterSetName=ParameterAttribute.AllParameterSets)]
Merge pull request #201 from mrward/cmdlet-default-parameter-set-is-all-parameter-sets

Cmdlet default parameter set is all parameter sets
ReferenceTests for PSObject reflection properties
PSObject member reflection capabilities
Add-Member cmdlets, related tests
Member access and invocation abstraction via PSObject

The new capabilities of PSObject are now used to access properties,
fields and methods of any object by abstracting the access through
PSObject.
The current implementation lacks support for static members and will
be added in the next commit.
This means the new tests are all working, but some old aren't with
this commit.
Support for static members
Abstraction of PSMethodInfo

Implementation is now in PSMethod as intended by the API specification.
Support for overloaded method invocation
Fixed introduced error on assignments with operaors
Fixed and enabled some tests that work now