Move launch logic into ActionHandlers.

Add test.
Add RootsAccess interface to RootsCache (to faciliate testing).
Create a new TestEnv class that:
    * bootstaps basic data and dependencies
    * installs test executor so async tasks can be executed predictably.
    * instruments main thread to ensure AsyncTasks return results
      before we continue to make asserts.
Add new Lookup interface to provide improved semantics over j.u.f.Function.
Inject access to Provider specific Executors by way of Lookup.

Change-Id: I0fc71897a4cc40d26c5fa3ae3bb88bad7dbdcf5c
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index 6a9d633..a95bf72 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -132,6 +132,7 @@
     interface Environment {
         RootInfo getCurrentRoot();
         String getDrawerTitle();
+        @Deprecated  // Use CommonAddones#refreshCurrentRootAndDirectory
         void refreshCurrentRootAndDirectory(int animation);
         boolean isSearchExpanded();
     }