Make compositor layer creation atomic

Instead of creating, sizing, and setting up layers using several
messages use only one. If the layer already exists, it will be updated
to reflect the new properties. The clip rect is still set in a separate
message, but that will be eliminated in a later commit.
I wonder if we can group some of of these (rect, scroll policy, color) into a `LayerProperties` struct.