Better manage GsaCommHandler's lifecycle

We now manage GsaCommunicationHandler's lifecycle more precisely. We now
setup the bare minimum before Adaptor.init() and teardown as much as
possible before Adaptor.destroy().

There are many thread-safety and object reachability fixes, primarily
made obvious by the handling of most Adaptor references within
2 files changed