hush: print cd error to stderr; use fopen_or_warn in builtin_source;
 prepare builtin_unset for function support
libbb: do not clear errno in fopen_or_warn

function                                             old     new   delta
builtin_unset                                        242     271     +29
fopen_or_warn                                         42      31     -11
builtin_cd                                            90      74     -16
builtin_source                                        89      72     -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 29/-44)            Total: -15 bytes

diff --git a/libbb/wfopen.c b/libbb/wfopen.c
index 4c84b3b..1cb871e 100644
--- a/libbb/wfopen.c
+++ b/libbb/wfopen.c
@@ -14,7 +14,7 @@
 	FILE *fp = fopen(path, mode);
 	if (!fp) {
 		bb_simple_perror_msg(path);
-		errno = 0;
+		//errno = 0; /* why? */
 	}
 	return fp;
 }