Revise buffer size protocol for io_getlin and args_getarg

The way it works now properly reflects the semantics of fgets (for
io_getln) and strlcpy (for args_getarg). Before it was off by one
because it didn't account for the terminating 0 in the string buffer.