This method destroys the OParameter and frees its resources. The underlying
implementation field will be freed if this is the last object that is referring
When the OParameter is destroyed, any strings that the OParameter owns (such as parameter name)
are also freed.