I factored the sorted queue implementation Phil created for
monitoring timeouts out into separate files (margo-timer.c/h).
There is now an interface for submitting timers that define
a callback function that's executed when the timers expire.
margo_thread_sleep() and margo_forward_timed() will both use
this interface, though only margo_thread_sleep() is implemented
at the moment.

- Demonstrated in test program. This function allows caller to suspend
until some other entity calls margo_finalize(). If called by a ULT
that is executing in the same pool as the HG progress thread, then it
will indicate to the progress thread that it does not need to yield
execution.
- fixes #6