updates
Virtual timer, first implementation

Doesn't totally work yet. ATM I am just taking the head of the ring
buffer, but actually we want to choose the smallest value for the next
timer, which is slightly more code. But flighting with Rust's memory
safety was the important challenge and that's done.