Implemented ListIndex

This tracks a selection in a List by the actual selected item, and
synchronises between a Box[Option[T]] containing this item, and a
Box[Option[Int]] containing the corresponding index. Performs
synchronisation respecting which one has been modified, and consistency
with the list, in order to try to preserve selection during reasonable
list operations (adding, deleting, moving selected item, etc.)
ListIndex is now used in LedgerViewDemo to show this.