* re-write asyncio component with txaio * do all failure/success counting in component base class * disconnect a possibly-still-active session * handle connection errors * reconnect when 'other' errors happen, too