obs: keep eio out of every instrumented binary
observe depends on observe.producer, which depended on observe.producer.core, which depended on eio. Every CLI that calls Observe.setup therefore linked eio, and with it bigstringaf, cstruct, eio.core, lwt-dllist and optint -- to print log lines. The forwarder never touches Eio: the only users inside producer.core were Ring_eio, an Eio driver the forwarder path never calls, and Clock.of_eio, two clock reads.
Both move to a new observe.producer.core.eio, linked explicitly by the two Eio unikernel examples and the ring tests. producer.core now needs neither eio nor mtime, and obs_guest (observe.producer + probe) no longer drags the Eio core into a guest image. Clock_eio gets its own test module, split out of test_clock.