Move delete support into base ActionHandler.

Introduce an "Addons" interface that describes all of the
    extra stuff we expose in our concrete Activities allowing
    us to write test doubles for our Activities.
Add new "ui" package for UI specific stuff like:
Introduce DialogController, isolating dialog business in
    a separate class (that can be easily replaced with a double)
    Move delete confirmation and snackbar-error reporting
    into this class.
Introduce a Messages class for building messages, but isolated
    from implementation details.
Add test for delete logic in ActionHandler (now that the
    code is unit-testable.)
Introduce new ClipStore interface to improve testability
    of code that depends on clip storage...but in this
    CL we don't yet cover any of that.

Decouple all ActionHandler impls from their
Change-Id: Ic1449e501c855cdb72bf7666f4b67b9a9e9c1b49
diff --git a/src/com/android/documentsui/ActionHandler.java b/src/com/android/documentsui/ActionHandler.java
index dddd374..a654fa0 100644
--- a/src/com/android/documentsui/ActionHandler.java
+++ b/src/com/android/documentsui/ActionHandler.java
@@ -20,9 +20,12 @@
 import android.content.pm.ResolveInfo;
 
 import com.android.documentsui.base.BooleanConsumer;
+import com.android.documentsui.base.ConfirmationCallback;
 import com.android.documentsui.base.DocumentStack;
 import com.android.documentsui.base.RootInfo;
 import com.android.documentsui.dirlist.DocumentDetails;
+import com.android.documentsui.dirlist.Model;
+import com.android.documentsui.dirlist.MultiSelectManager.Selection;
 
 public interface ActionHandler {
 
@@ -54,4 +57,6 @@
     boolean previewDocument(DocumentDetails doc);
 
     boolean openDocument(DocumentDetails doc);
+
+    void deleteDocuments(Model model, Selection selection, ConfirmationCallback callback);
 }