DO NOT MERGE - Refactor preview position logic

Centralize the logic of laying out bottom bar and transforming
preview TextureView based on the total space to lay them out
and preview aspect ratio. The layout is updated when either condition
above has changed. Then the rect of the bottom bar and preview
rect can be queried anywhere. This way, bottom bar, mode options
layout, and any view that relies on the preview rect and bottom bar
rect can be laid out without extra layout passes.

Bug: 13795952
Change-Id: I13c38b566b5b5d8f37ec94f325554c089a86ca8e
(cherry picked from commit 28a2950939614a0c1c83787960ce1a218fb69a5e)
13 files changed