utility/timer: Implement oneshot timers

This change is meant to enable users of the old openbmc timer class to
trivially use the timer if they only want single executions. It also
makes setting up the timer less verbose if you do not already know the
timeout interval.

Tested:
    Run through unit tests and did a sample integration with
    phosphor-watchdog and phosphor-networkd. Verified that the new
    oneshot example works as expected.

Change-Id: I2cd006d1f19fff99bce3f732a16eac9ca9553666
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/.gitignore b/.gitignore
index d9423e4..5353da2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,6 +41,7 @@
 /src/sdeventplus.pc
 
 # Output binaries
+/example/delayed_echo
 /example/follow
 /example/heartbeat
 /example/heartbeat_timer