core: Changes type of VmDevice from String to enum

Creates enum VmDeviceGeneralType and changes the type of VmDevice.type
to it. Goal is to avoid current confusion with VmDeviceType enum which
values are converted to String and set to both attributes VmDevice.device
and VmDevice.type.

Change-Id: Icada39e3918fb053cb0ad0388178ccf5c6338ca2
Signed-off-by: Martin Perina <mperina@redhat.com>
core: Custom properties error handling cleanup

Extracts custom properties error handling from VmHandler to
CustomPropertiesUtils and refactors custom properties errors to support
not only VM properties, but also device properties (added by following
patch)

Change-Id: I8a20f5a9c72f4aa8f928fec5cdc1a64e9db442e9
Signed-off-by: Martin Perina <mperina@redhat.com>
core: Adds custom properties to VmDevice

It contains these changes:
  - Adds custom_properties column to vm_device table.
  - Adds SupportCustomDeviceProperties to vdc_options to support only
    3.3+ versions
  - Adds CustomDeviceProperties to vdc_options to store properties
  - Adds corresponding method to FeatureSupported
  - Adds DevicePropertiesUtils class to support custom device
    properties operations
  - Adds support for CustomDeviceProperties settings inside
    engine-config
  - Adds support for CustomDeviceProperties to OvfReader/OvfWriter
  - Adds tests for DevicePropertiesUtils methods
  - Adds query GetDeviceCustomPropertiesQuery

Change-Id: I07daa5cccbf8e3cbd6b4191bbc8ebf0729d9d9a0
Signed-off-by: Martin Perina <mperina@redhat.com>
core: Adds custom properties to VmNetworkInterface

Patch contains:

 - Adds custom properties to VmNetworkInterface.
 - Add custom properties validation and store in the db to
   Add/UpdateVm/TemplateInterfaceCommand.
 - Sending custom properties to VDS on RunVm, UpdateVmInterfaceDevice and
   Plug.

Change-Id: I218db49043ddf0524178f6ff903e605bc0fe661a
Signed-off-by: Martin Perina <mperina@redhat.com>
Signed-off-by: Alona Kaplan <alkaplan@redhat.com>
webadmin: adding custom properties to vnic dialog

Adding KeyValueWidget to vnic add/edit dialog to suport adding custom
properties to a vnic (same functionality as for vm->custom properties).

Change-Id: Icb066bf96ab50ab40e19c44754fc70608b48cc24
Signed-off-by: Alona Kaplan <alkaplan@redhat.com>