Timeouts unwind the stack to the correct level.

Previously, if a timeout fired while you were in a `begin...rescue Exception`
block, that block would rescue your timeout and then continue, and not
return control back to the place that set the timeout originally. This
behavior could be quite surprising when you encountered it.

Now when a timer fires, Itimer will unwind the stack to the level that
the timer was created, and then raise the Itimer::Timeout exception. This
should make itimer behave more intuitively.