Redesigned connection management

If the target is used within an async wrapper, there is little need for
locking or queueing within the target.  The connection management has
been simplified, eliminating the start connection thread and blocking
until connection is re-established.  Since the async wrapper will queue
messages and run the target on a separate thread, the blocking should be
fine.  Also eliminated some unnecessary calls to ShutdownAmqp, and
changed Write method to the LogEventInfo overload, to let the base class
handle the continuation for async calls.