Support for Checkable list items

When ListView has a choiceMode other than none, it can graphically
display which item(s) are currently selected, if (and only if) the list
items implement the Checkable interface. With DSLV, even if list items
implement this interface, it is hidden by the list-item wrapper used
(DragSortItemView).

With this change, DragSortItemView implements the Checkable interface
and forwards it to the wrapped item view if it implements Checkable,
allowing DSLV to function properly in all choice modes.

I considered a different design where we have a
CheckableDragSortItemView that inherits from DragSortItemView. DSLV
would then instantiate different variants depending on what is needed.
However, the only reason I could find for doing this would be to avoid
the few cycles spent on instanceof checks, and the original ListView
code does not seem to have any concerns about doing this (see
ListView.setupChild).
DragSortListView.moveCheckState

Add a method to move the check state of ListView items along with the
items during drag & drop. This is necessary for adapters without stable
IDs, because the ListView has no way of determining how items have moved
when the underlying adapter sends a change notification.
Examples in demo project for single- and multi-choice listview
DragSortListView.removeCheckState

Method similar to moveCheckState but for moving check statuses up one step
when a list item was removed.
Examples in demo project for checkable listviews with removable items