Make DeploymentType née PackageType an object instead of a class

Also introduces Param object.  This is a big change, but going through the tests has convinced me that this makes things considerably clearer as well as allowing params to be specified in a way that makes generated documentation possible.