Fix wrong error if monkey_patch was invoked twice

Previously you would get a bogus error telling you that it is too late
to monkey patch, because you tried to monkey patch after thread or
threading modules were imported. However it is pthreading module
who imported these modules for patching.

Now monkey_patch check if patching is possible and patch the modules
only on the first call, and calling it again does nothing.

We can be more strict here and disallow a second call, complaining that
threading is already patched, but this is not backward compatible with
old vdsm, that used to invoke monkey_patch twice during the tests. When
we release a new version which conflicts with old vdsm (<= 3.5), we can
change the behavior to be more strict, since invoking monkey_patch twice
is likely to be an error in the caller code.

Change-Id: Iaf2ea03b4dddaca7f27268eb40fda3646c79474d
Signed-off-by: Nir Soffer <nsoffer@redhat.com>