add List.SelectedItem property
List: Dictionary keys must not be null
List: some sizing tweaks
ScrollableControl: fix ScrollPosition property

When scrolling down to the bottom, the view should not be below
the scroll rectangle, but the bottom part of it. To achieve that,
scale the ScrollPosition coordinates accordingly.
ScrollableControl: add ContentRectangle property, make ScrollSize protected
List: override ScrollSize property
begin implementing List painting