API: Param_GenericObject does not provide suitable constructors

The class Param_GenericObject does not provide constructors which take arguments such as name and nickname. This forces deriving classes to set property values in class ctor, example follows. Please add a suitable ctor or ctors to Param_GenericObject.

class Foo : Param_GenericObject
{
   public Foo()
   {
      Name = "MyName";
   }
}

Note that GH_PersistentParam<T>, the base class of Param_GenericObject, does provide a suitable protected ctor, but this is not repeated by Param_GenericObject:

protected GH_PersistentParam(string name, string nickname, string description, string category, string subcategory)

While this may just appear to be a minor inconvenience, the actual problem is that the properties in question (Name etc) are virtual. Virtual properties (actually any virtual member) should not be accessed in a base class ctor because a derived class may override the property, but the derived class ctor is invoked after the base class ctor, and the value returned by the override implementation by depend on state initialized by the derived class ctor. This will generate a warning in some development environments. It can lead to very confusing behaviour, and can be particularly nasty in the long term when a derived class is later added or changed without realising that the base class ctor is making calls to virtual members.