Clang's unsigned integer overflow santizer reports a runtime error when ...

...up_heap()

is called with index == 0. This error is currently harmless, since the next line
short-circuits when index == 0, but it seems prudent to remove the warning, both
to make Clang's sanitizer happy (remove false positive), and to make sure that
the function remains safe if subsequent logic changes.

Sample Clang output: /usr/include/asio/detail/timer_queue.hpp:195:33: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long'