Add a new ``TimedOnetimeEvent`` class that extends ovsdbapp's
``RowEvent`` with two guarantees: the event fires at most once
(``ONETIME = True``), and if it does not match within a configurable
timeout it is automatically unwatched from the event handler via a
daemon ``threading.Timer``.
This is useful for transient watchers that should not remain registered
indefinitely if the expected DB change never arrives (e.g. waiting for
a port to appear on a bridge).
Related-Bug: #2158253
Assisted-By: Claude Opus 4.6
Signed-off-by: Rodolfo Alonso Hernandez <ralonsoh@redhat.com>
Change-Id: Ic4f8a3e5b7d1a9e0f2c6b4d8a1e3f5c7d9b2a4e6