Fix segfaults when calling Thread::call_without_gvl and call_with_gvl
I can't really explain why requiring `FnMut` over `FnOnce` fixes the
problems described in #69. I only discovered that all examples for
passing closure to C callbacks were using `FnMut` and not `FnOnce`.
Based on the stacktraces I saw I am assuming that the compiler captures
and returns the variables differently which somehow extends(?) their
lifetime.
Moving the `func` into the `wrap_return` seems to be required to ensure
the return value lives long enough.
Due to the additional requirements of `FnMut` the `'static` lifetime of
the closures are not required anymore. They have been introduced to fix
[this issue][1]. The original example now also does not compile and
requires `str` to be cloned. Done that it compiles and runs without a
segfault.
[1]: https://github.com/d-unseductable/ruru/issues/64