Lwt engine loop

Get rid of manual looping and use `Lwt_engine.on_timer`.