Stat cleanup.

lib: rename format_mode() to mode_to_string() (echoing string_to_mode), make it
take a normal char * argument.

stat: collapse big switch/case statements that only have one line each
into if/else staircase (much fewer lines of code). Remove return type
(other stat implementations print ? for unknown escapes, so do that here).
Inline do_stat() and do_statfs(). Set default string in normal local
variable "format". Remove unnecessary struct d. Restructure stat logic to
"if (flagf && !statfs()) else if (!flagf && !stat()) else perror_msg();"
Teach %N to add -> symlink. Judicious use of putchar() instead of xputc to
let FILE * do its job collating output.
diff --git a/lib/lib.h b/lib/lib.h
index b5c308c..131f9c4 100644
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -180,7 +180,7 @@
 char *num_to_sig(int sig);
 
 mode_t string_to_mode(char *mode_str, mode_t base);
-void format_mode(char (*buf)[11], mode_t mode);
+void mode_to_string(mode_t mode, char *buf);
 
 // password helper functions
 int read_password(char * buff, int buflen, char* mesg);