List: add a first for_concurrent_with_index

In this version, the function goes 3 times through the list, but the
goals is to freeze the API and optimize later (all the for_*
functions).
IO: add function `with_out_channel`
IO: add function `output`
IO: move Sys.{read,write}_file to the IO module
doc: build the documentation
doc: improve the README
IO: add the flush function
IO: add with_in_channel
test.IO: add one more test (channels)
Sys: add function `mkdir`
test.Sys: add a test for the Sys.mkdir
Sys: add function `mkdir_p`
test.Sys: add small test of Sys.mkdir_p
Sys: add function `file_info` (do not use for now)

The functions uses Lwt_unix.readlink which seems broken in the current
Lwt implementation (c.f https://ocsigen.org/trac/ticket/329).
test.Sys: add a (partial) test of file_info
Sys: implement work-around for Lwt's issue 329
test.Sys: improve test of file_info
Sys: do white-space change
test.Sys: fix test of file_info (`absent case)
IO: rename `output` to `write`