VMware: Fix type of VM's config.hardware.device in fake

config.hardware.device was handled inconsistently, and could be of
various types. When created by _create_vm(), it was actually a
VirtualDeviceConfigSpec[]. It should be a VirtualDevice[].

Fix tests which depended on the wrong type.

Add _create_array_of_type function to fake to create an array type
which works correctly when passed to code. A returned array of Foo
must be an instance of class ArrayOfFoo, and contain a single
property, Foo, which is a python array of objects of type Foo.

Change-Id: Ic90e1d0d947941621606fded9e56f9a98d111cad
Merge "VMware: Fix type of VM's config.hardware.device in fake"