Pipe: add {read,write}_{prepare,commit} APIs

These allow a client to handle data in a crash-proof way, e.g.:

  let seq, buffer = read_prepare ring in
  (* journal sequence number and contents *)
  (* <-- if a crash happens here ... *)
  read_commit ring Int32.(add seq (of_int bytes_consumed))
  (* ... or here, we can ensure we process he data exactly once *)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Expose the {read,write}_{prepare,commit} in the signature

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

Signed-off-by: David Scott <dave.scott@citrix.com>
Switch from {read,write}_{prepare,commit} to {read,write} and advance

This is in-sync with the new Xenstore ring CONNECTION signature.

Signed-off-by: David Scott <dave.scott@citrix.com>
Merge pull request #11 from djs55/prepare-commit

xenstore, console: expose a prepare/commit interface