Fix UiToolBar.ImageList.

- It first caused non-matching element and thus image list was always empty.
  To fix this, introduced "roots" to search for named item.
- Then ImageList was not Control, so it could not be simply cast to that.
  To fix this, Control children is recursively looked in only when it is
  Control.
- Then since UiToolBar is actually instantiated as ToolBarImpl and its
  ImageList is ImageList, not UiImageList (incompatible), they failed at
  property setter. They should have different name, so renamed ImageList
  property to UiImageList property.