Functorise over event channel interface

We create an 'EVENTS' signature that is like 'ACTIVATIONS' only with the
other functions added (send i.e. notify; listen i.e. bind_unbound_port;
connect i.e. bind_interdomain). The Events_lwt_unix module is a layer
above xen-evtchn which implements this signature -- this should be upstreamed
into xen-evtchn itself.

This will allow us to unit test vchan by mocking the event channel interface
within a single unix process. It potentially also allows us to replace
event channels with some other mechanism (e.g. unix signals) if we really
want to.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>