implement 'preserve' for VMware_Array_Hash

* allows adding or modifying element without respecifying
  all existing elements
* needed for (among others)
    * vCD: adding rights to roles (as when adding vCD extensions)
    * vShield: adding static routes or modifying existing routes
    * vShield: enabling or disabling firewall rules without losing
      source, destination, etc.
    * vShield: adding individual sources and destinations without
      requiring full respecification of entire ipsets