engine: Ties more consistently between vm disk device and disk entities.

VmDevice is the model entity on the Engine that ties between VM and
the disk attached to this VM. Disk is not the only entity which tied to
VM by VmDevice, but the only to be affected by this patch.
VmDevice keeps a few very important characteristics of the underlying
disk, for example address which ties the disk to specific slot of the
controller. Without that information or if this information is not
consistent disk may become useless after being introduced to the VM.

During creating VM from a template with Disks A and B.
Disk A => Disk A'
Disk B => Disk B'

So, if VMDevice A ties between Disk A and Template then VmDevice A'
should tie between newly created VM and Disk A'. This patch make this
process more consistent as till now, Engine was up
to the order of disks in the Map or List as they were retrieved from UI
or Database.

Change-Id: I8bf284ea4e05f03fc0a7e94a1ec901aacbdc1ab1
Bug-Url: https://bugzilla.redhat.com/993776
Signed-off-by: Sergey Gotliv <sgotliv@redhat.com>