remove read/write from the RBT zipper interface

They made the last balancedness test (in presence of zippers) fail,
because their specifications are buggy. An ironic evidence of the
usefulness of interface testing?

The read function allows to observe an arbitrary subtree of a RBT,
which may not be balanced as it may start with a red node. The write
function allows to replace it with any other RBT, which also breaks
balancedness as one may insert a tree with a different black height
than its sibling.

This removal is a bit unsatisfying as it makes the zipper interface
basically useless. There are several possibilities of functions one
may want to add:

- on non-leaf nodes, we may want to access the ('a) element; such
  a function would be partial as current 'pointers' may also point to
  Empty nodes. We cannot allow "write" of ('a) in general, as this can
  break the sortedness property, but we might allow "write" if it
  inserts an element that compare equals to the existing one
  (useful for example if one models a mapping from integers to foo as
  a (int * foo) RBT.t, with a comparison function that only depends on
  the int part)

- on leaf nodes, we may want to insert a new ('a) element; of course
  this requires some rebalancing logic corresponding to the 'insert'
  function.

None of these are immediate/easy to implement, and I'm working on
other parts of the framework for now (native support of sums
and products).