Working implementation of Contextual Undo pattern

Also, fix ArrayAdapter implementation with a defensive copy
Also, use Collections.addAll wherever possible

Still some duplication in the onTouchListener used in the swipe to dismiss
All code is uncommented, except for the important warnings