ItemScrollView improvements

- add public reloadData()
- bugfix: properly reset scroll position on reloadData()
- bugfix: use setNeedsLayout() instead of setNeedsDisplay()
- split data source method itemWidthOrHeightInItemScrollView:()
add methods for drawing rects and circles to UiUtilities
PlayView exposes board frame property

- the property allows clients (specifically PlayViewController) to
  set up other views so that they are nicely aligned with the board
- the property must already have the right value when it is time
  for PlayViewController to set up its views; this requires that
  PlayView creates the PlayViewMetrics object much earlier
- this is not a problem because the boardFrame property can be
  calculated without a GoGame
first draft of a scrollable move list view on the Play tab

- new class MoveListController which uses ItemScrollView to
  achieve its task
- current draft works on iPhone only
- redesign of view hierarchy on the Play tab: the order below
  the Play view is now 1) status line + activity indicator,
  followed by 2) the new move list view
- to make room for the move list view, the status line now
  uses a smaller font and displays text on only one line
- creation of most of the views on the Play tab is now delayed
  and no longer happens in the main controller's loadView();
  this is not an essential change and, if necessary, could be
  reversed without a lot of trouble