Child can request parent to recalculate rect sizes

Previously the parent decided when to recalculate rect sizes for its
children.

Now a view can request its parent to resize all its children (which
includes the view that requested the resize). Also, BaseView now manages
the last painted rect (which is no longer exported) and automatically
requests resize from a concrete view when the paint rect changed.

Two scenarios where these mechanics are handy (among many others):

- A view with a dynamic size. For example a text input view that
  supports multi-line entry. It might start out with a height of 1 but
  may request a resize when the text wraps.

- A container which stacks its children vertically or horizontally. Each
  child is given the desired size and the next child starts on the next
  free row or line. Think of how div tags are stacked in a web browser.

This commit does not add the functionality for a child to communicate a
desired size. A future commit will add that.