Hold the GIL while releasing shared_ptr_deleter's python handle.

Python requires that the GIL be held while releasing objects, but requiring
that all clients of boost::shared_ptr-held types do so explicitly is
error-prone.  In the case where the wrapped type is consumed in a library that
you don't control, it might not even be possible to do correctly.  Instead,
have shared_ptr_deleter acquire the GIL on client's behalf at exactly the time
when it is necessary.