loaders: IO: Add new functions

* Add GP_IOFlush() that works like Write() but either writes whole
  or returns an error.

* Add GP_IOWBuffer a write buffered I/O that can be created on the top of an I/O.

* Add GP_IOPutC() unlike the libc putc() it returns zero on success.

* Add GP_IOPrintF()

Signed-off-by: Cyril Hrubis <metan@ucw.cz>
loaders: Implement Write() instead of Save()

This change implements Write() functions instead of the Save() functions
for all loaders and removes Write() callback from GP_Loader structure.

It also adds a generic GP_LoaderSaveImage() function and bunch of
GP_WriteFOO() functions.

Signed-off-by: Cyril Hrubis <metan@ucw.cz>