utils: Add unhandled exceptions logging decorator

We have at least two places where exceptions in thread main function are
not handled, making debugging such threads impossible. This patch adds a
new decorator that make it easy to log tracebacks for unhandled
exceptions.

The recommended use case is to decorate a thread main function. This
ensure that we get a traceback for any error in the thread, including
errors in error handling code. This should be used on all in threads in
the system.

Note that the decorator only adds logging - it does not change the
program flow.  The unhandled exception is raise again so you can safely
use it on script main function, without changing the exit code. Do not
try to use this for ignoring exceptions.

See utilsTests for example usage.

Change-Id: I39265bac4f26fefa365bad080dafb6106145f846
Relates-To: https://bugzilla.redhat.com/1034741
Relates-To: https://bugzilla.redhat.com/1040164
Relates-To: https://bugzilla.redhat.com/1040166
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/21778
Reviewed-by: Sergey Gotliv <sgotliv@redhat.com>
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/22212
Reviewed-by: Yaniv Bronhaim <ybronhei@redhat.com>
Tested-by: Yaniv Bronhaim <ybronhei@redhat.com>