lib: move `Template::write_to_*` to `Streamable`

Their implementation only depends on `write_to` that is introduced
in Streamable

Signed-off-by: Jean Privat <jean@pryen.org>
lib/csv: adapt CSVDocument to the Streamable interface.

Also improve the efficiency of the writing implementation.

Signed-off-by: Jean Privat <jean@pryen.org>
model_viz: adapt MProjectDot to Streamable

Signed-off-by: Jean Privat <jean@pryen.org>
lib/html: adapt HTMLPage & HTMLTag to Streamable

And update clients to the new API

Signed-off-by: Jean Privat <jean@pryen.org>
lib/ordered_tree: adapt OrderedTree to Streamable

and update clients

Signed-off-by: Jean Privat <jean@pryen.org>