Long screenshot fixes for apps that return less than the requested rect

- Use pixel height instead of tile count to determine ideal long screenshot height.
- After adding each tile, go back and see if there are gaps in the tile
  set, if so then try to fill in the gap before continuing walking up or
  down.
- Set max tiles to a constant as it's for system safety and not a
  completion criteria in the common cases.
- Remove ImageTileSet's unused OnBoundsChangedListener (definition got
  more complicated now that we're dealing with gaps).

Test: atest ScrollCaptureControllerTest
Test: atest FakeSessionTest
Bug: 189475409

Change-Id: I0cfc9519e7fa444d662ac41e0bef4fced785a98e
6 files changed