govc: fields.set can now add missing fields
govc: fields.set can now add missing fields

This patch adds support to the `fields.set` command for adding new
fields when setting the value of a field that does not yet exist. For
example, this is what happens when attempting to set a field that does
not exist:

        $ govc fields.set my-field my-value OBJECT_PATH
        govc: key name not found

Using the new `-add` flag, the field will be created upon attempting to
set the field's value:

        $ govc fields.set -add my-field my-value OBJECT_PATH
        $ govc fields.ls OBJECT_PATH
        205  my-field

The new `-type` flag also allows users to specify to which managed
object type to add new fields when setting them. If no type is
specified then a global field is created (see above example). The
following example adds a field to just the `VirtualMachine` type:

        $ govc fields.set -add -type VirtualMachine my-vm-field my-vm-value OBJECT_PATH
        $ govc fields.ls OBJECT_PATH
        205  my-field
        206  my-vm-field

bruceadowns/govmomi,bruceadowns/govmomi,vmware/govmomi,bruceadowns/govmomi,vmware/govmomi,vmware/govmomi