Added VIO_FORMAT_FUNCTION macro to allow gcc/clang to warn upon mismatch of format string and parameters.

This fixes a -Wformat-nonliteral warning (but now there will be new warnings
from -Wformat since it can now check print_error() usage).  Will fix those next...