utils: faster albeit less general deepcopy

VDSM makes intense use of deepcopy() to ensure
correctness of the returned Vm data.
The usage of deepcopy can be reduced, but in order
to do so a significant amount of work is due
to clean up and refactor the affected flows.

For the short/medium term, deepcopy() will be needed;
unfortunately, deepcopy has a quite significant cost.
The function must guarantee to do the right thing
an to behave correctly with all the types and combinations
thereof, so it does quite some bookkeeping.

VDSM, however, does not need so much care for its
usage of deepcopy().
VDSM uses deepcopy with Vm.conf, which will contain
only python primitive types, arranged in a structure
only moderately nested and complex, without fancy
things like classes or generators.

Moreover, this data must be pickle-able, because
VDSM already uses pickle as checkpointing machinery.

So, for VDSM intents and purposes, both existing and
foreseeable, we can replace deepcopy with a much
simpler and faster function, leveraging
the pickle module, like the one suggested on:

http://stackoverflow.com/a/1411229

Change-Id: I936a977e9f41863bdff18b9343d252ab0996d554
Bug-Url: https://bugzilla.redhat.com/1155146
Signed-off-by: Francesco Romani <fromani@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/34989
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/35331
Reviewed-by: Piotr Kliczewski <piotr.kliczewski@gmail.com>
Reviewed-by: Yaniv Bronhaim <ybronhei@redhat.com>