(basename): Rewrite so it doesn't rely on strrchr, and hence doesn't need to include string.h -- on some alpha-based OSF systems, there's a conflicting prototype for basename in string.h. Reported by Kaveh Ghazi.