Reimplement scandir(3).

The old scandir implementation didn't take into account the varying
size of directory entries, and didn't correctly clean up on its
error exits.

Bug: 7339844
Change-Id: Ib40e3564709752241a3119a496cbb2192e3f9abe
diff --git a/libc/Android.mk b/libc/Android.mk
index 5a1356a..7219211 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -293,6 +293,7 @@
     bionic/pthread_sigmask.cpp \
     bionic/raise.cpp \
     bionic/sbrk.cpp \
+    bionic/scandir.cpp \
     bionic/__set_errno.cpp \
     bionic/setlocale.cpp \
     bionic/signalfd.cpp \