Clean up the <libgen.h> implementation a little, bring in tests.

Most of these tests were in system/extras, but I've added more to cover other
cases explicitly mentioned by POSIX.

Change-Id: I5e8d77e4179028d77306935cceadbb505515dcde
diff --git a/libc/Android.mk b/libc/Android.mk
index bb3fd00..a64287a 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -149,16 +149,12 @@
 	bionic/atoi.c \
 	bionic/atol.c \
 	bionic/atoll.c \
-	bionic/basename.c \
-	bionic/basename_r.c \
 	bionic/bindresvport.c \
 	bionic/bionic_clone.c \
 	bionic/brk.c \
 	bionic/clearenv.c \
 	bionic/cpuacct.c \
 	bionic/daemon.c \
-	bionic/dirname.c \
-	bionic/dirname_r.c \
 	bionic/err.c \
 	bionic/ether_aton.c \
 	bionic/ether_ntoa.c \
@@ -283,6 +279,7 @@
     bionic/eventfd.cpp \
     bionic/__fgets_chk.cpp \
     bionic/getcwd.cpp \
+    bionic/libgen.cpp \
     bionic/__memcpy_chk.cpp \
     bionic/__memmove_chk.cpp \
     bionic/__memset_chk.cpp \