EFUNs: Implement {base,dir}name() in C. This makes it possible to have a stricter type for basename() and dirname(). Also adjusts the type for combine_path() et al.