Added device_type support for users and images

Changed users module to require a device type when creating a user.
Changed cli module to require a device type when creating a user,
and added command to list supported device types.
Changed config schema and example file to use openstack.images
object to store device types and image IDs in key/value format.
Changed setupuser module to use image ID based on device type.
Changed user module and cli clear-vm-info command to set the user's
vm_ip and vm_id to undefined; they must be undefined for the
setupuser module to create a new VM when that user logs in.

Change-Id: I56a8b839410b8e479ceda06f74c88f78be1b1972
Updates for destroying VMs

Fixed error in openstack destroyVM function to refer to the
correct client, which was updated elsewhere in a previous commit.
Changed users removeUserVM function to fail on users that have no
vm_id defined, those are users whose vm_ip was manually assigned.

Change-Id: I22d0813bc759cd3f891c74c82ad9bde8c39a723b
Updates for automatic VM creation

Separated automatic VM creation from authentication (now happens
during VMREADY_WAIT state in proxy).
Updated setupuser module to prevent creating VMs for users who
have a manually assigned vm_ip.
Updated openstack module to use correct private address field, and
to clean up (destroy) a VM if a creation resulted in an error.

Change-Id: I06b175f07a60c60ae682517f50437de10a56c6ae