Fix typo in unit test (!)
When the console/xenstore ring pointers overflow a 32-bit signed int, adjust the modulo arithmetic to match
In the xenstore and console rings, if we hit the highest byte, repeat the read/write call. This matches the behaviour of the old C code (although it shouldn't be required)
Add unit tests to check 32-bit int overflow handling
Start adding a unix implementation of the eventchn signature

The idea is to allow us to run the xen protocols directly as user-space
processes for testing, fun and profit. Well maybe not profit.
Flesh out the unix implementation of the xen interfaces a bit more
Add new example to OASIS
Start adding example 'client' program
The Io_page implementation keeps track of where the data can be found

This will be used by the grant table implementation: it needs to tell
a peer where the data is, so it can be mapped.
Regenerate OASIS
Add a 'string_of_id' function to the ring for debugging

When saying 'wakener not found' we can include the bad id.
Add Ring.Rpc.Front.to_summary_string to print a quick description of the ring
In the event of an unexpected response ID, log the received and expected IDs
Fix race (leading to corruption and then deadlock) waiting for a free ring slot

For a ring with 'x' slots, it's possible for x + n threads to
 (i) check for a free slot and;
 (ii) return () and block
even though only 'x' slots are available. Each one can then be
scheduled, call 'next_request_id' and write a slot. The 'n' threads
will overwrite slots written by the 'x' threads. Typically this
leads to deadlock since some requests are lost.

To fix, we allocate the 'next_request_id' and return that, instead
of ().
Merge pull request #1 from djs55/unix-eventchn

Fixes and general API improvements