Add a cleaner "in-memory" events implementation

Once we're happy with this signature and have enough implementations, I reckon we should move this to xen-evtchn and use sub packages for different implementations (pipes, xen kernel, xen userspace, condition variable)