csv: Add features

Add the following features:

* Escaping.
* Customization of the CSV format.
* A reader.

Fix #969.

Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Je suis pas convaincu de l'utilité de valider si la `value` est clean ou pas avant de l'escaper, autant l'escaper directement, quitte à renvoyer une copie de `value` complètement identique.
Je vois pas trop l'utilité de `optimize_size` par ailleurs, si la valeur doit être escapée, elle le sera, si elle ne doit pas, elle ne le sera pas, non ?