CONSOLE is now a FLOW

NB this should not be merged until changes have been made to mirage-console (implementation) and to as many old users of 'write' that we can find.

This is a backwards-incompatible change which affects the following
CONSOLE functions:

  write
  write_all

Client applications need to be updated to use the new Cstruct.t based
blocking 'write' function:

  val write : flow -> buffer -> [`Ok of unit | `Eof | `Error of error ]
io

There is no non-blocking 'write' function. I believe lossy console
output functions are a mistake because they cause confusion when
debugging.

This is part of [mirage/mirage#203]

Signed-off-by: David Scott <dave.scott@citrix.com>