wtask: Rename w_task_spawn() to w_task_prepare()

Using "spawn" gives the idea that the task is started right away, but that
does not happen before w_task_run_scheduler() is called. Using "create" in the
name would be better, but it implies that something is created that client
code will have to free/destroy later. In the case of tasks, resources are
allocated but this is transparent to the user, because they will be freed
automatically, so using "prepare" in the name seems to be the best fit.
wio/wioformat: Track written bytes correctly

Implements proper tracking of the amount of bytes being written to a stream.
This was a long-standing bug of the wio subsystem which finally gets fixed:

- w_io_putchar() now returns the number of bytes written, or a negative value
  on error. This is done for coherence with the rest of API functions.
- w_io_formatv() now tracks I/O errors and returns negative values properly,
  as well as the count of written bytes.
- Small fixes here and there to make things work properly.