Adds a ClientReconnectingException which is thrown if the client is attempting a reconnect while a message should be sent.
Prior the sender of a message only got clues about dropped messages due to reconnect in the clients logs, but couldn't handle this case in code.
The ClientReconnectingException can be handled by the sender and an optional buffering/ retrying strategy can be implemented. In methods returning a CompletionStage the stage will complete exceptionally conatining the error, in other methods the exception is thrown and has to be catched for custom handling.
Co-authored-by: Kalin Kostashki <kalin.kostashki@bosch.io> Signed-off-by: David Schwilk <david.schwilk@bosch.io>