Low: libcib: Allow cib client reuse in cib__signon_query()
Currently, calling cib__signon_query() twice with the same cib argument
causes a memory leak: a new cib_new() return value is assigned to *cib
unconditionally.
With this change, we reuse the existing *cib value if present. Suppose
we have a cib_t object in cib_disconnected state. Now we can safely use
cib__signon_query() to reconnect and perform a query.
If an existing *cib value is already connected, we continue using that
same connection (regardless of whether it's read-write or read-only).
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>