Compute bounding box and use it during line break

This CL includes following changes

- Change LayoutCache to have bounding next to the layout piece.
The bounding box may not always be necessary and there is separate
cache before this CL. Having separate cache is not perform well for
bounding box based line break because of lookup overhead. Thus
instroduce wrapper class that has both layout piece and bounds.

- Add new interface that perform line breaks with bounding box.
- Update Greedy/Optimal line breaker to have bounding box based line
  break.

Bug: 63938206
Test: minikin_tests
Test: atest CtsTextTestCases
Test: atest CtsGraphicsTestCases
Change-Id: I1a845240c6194acbc4f38c1380f5a644d6af3995
33 files changed