Type conversions using type converter

A cmdlet can now have a parameter that uses a custom type that has a custom TypeConverter defined. Pash will now try to convert a parameter passed on the command line to the custom type using this
TypeConverter.

```C#
    [TypeConverter(typeof(CustomTypeConverter))]
    public class Custom
    {
    }
```

One real world example of this is NuGet's Install-Package command which has a Version property that uses a custom TypeConverter to convert from a string to the SemanticVersion type.