add "Tag" properties to List items, groups.
add common base class to implement INotifyPropertyChanged
avoid code duplication in List
add ScrollableControl.ScrollIntoView() method
fix List.SelectedItem
List: move item bounds calculation to own methods
List: increase SelectionExpansion
List: scroll SelectedItem into view
List: handle clicks and keys to change the SelectedItem
TickOnceTimer: stop first, then ensure tick

This is necessary to prevent further ticks during the event.
List: implement item invocation