Layer bounds and buffer requests should use layer coordinates

Instead of passing a scaling factor down to rust-layers and keeping all
layers in page coordinates, work in layer coordinates. This is much more
natural, as the compositor and rust-layer should really need to care
about any potential contents zoom. It will also allow us to move more
code into rust-layers in a later commit.