gssh: Avoid crash if client holds a ref to output stream on shutdown

It's possible for the main connection object to be gone, but the
client app still holds a ref to the GOutputStream half, and calls say
g_output_stream_close (outstream, NULL, NULL) on it.  In that case,
just return an error immediately rather than segfaulting.
tab: Only free objects, don't do gtk+ inside dispose handler

Otherwise we can emit signal handlers which then call back into us,
and it's all just broken.  All we need to do in dispose() is free
stuff.