In particular, don't NPE if an app calls getExternalFilesDir() while
external storage is unmounted. We were making assumptions about the
length of the array returned by the "tell me about all the external
locations" method, but in unmounted cases that array can be zero-sized.
(And similar for getObbDir() and getExternalCacheDir().)
Bug: 63604311
Test: manual
Change-Id: I4dec828161245047182e6fd39a0df10dd1681ba2