clientIF: Clean up shutdown process

clientIF.serve used to check if shutdown process has started once every
3 seconds, leading to unwanted delay, that may cause vdsm to be killed
before a profile was written.

This patch changes clientIF.serve to start the bindings and return,
allowing the upper layer to wait for a shutdown signal in a more
efficiant way. This allows stopping a profile when shutdown signal is
received, before starting the shutdown process, ensuring that a profile
is written even if shutdown process got stuck and vdsm is killed.

This way is also more safe, as prepareForShutdown is called from the
main thread, instead of the signal handler context, where it is not safe
to call any code. In particular, setting a threading.Event in this
context cause a deadlock.

Change-Id: If7bfa9f7da81ffdfb581299cd14ec4edb50be5fb
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/26112
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/29675
Reviewed-by: Yaniv Bronhaim <ybronhei@redhat.com>
Tested-by: Yaniv Bronhaim <ybronhei@redhat.com>