Change how PagedTileLayout is measured

The change makes PagedTileLayout only use excess space from QSPanel
after other views have been measured and the padding has been accounted
for (see LinearLayout#measureVertical).

PagedTileLayout caches the last height to be measured so as to minimize
the number of times the number of rows is recalculated (and prevent
loops).

Also, fixed the calculation in TileLayout#updateMaxRows to match the
height calculation in TileLayout#onMeasure.

Test: manual, stress testing with multiple pages, adding and removing
tiles, starting and disconnecting VPN, changing display size
Bug:122714773

Change-Id: I5c85f03cfc79e341244d213fd92307821db80889
5 files changed