Add support for SetShape in Mash

Some apps specify a custom shape of their window, which is not
implemented yet in DesktopWindowTreeHostMus. This CL implements
the mojo API to support this scenario.

See the bug for the actual apps and their usage. This CL does
not solve all of the reported problems but fixes some.

Bug: 935780
Test: new unit tests
Change-Id: Ia39f0fc135093f63abd3031cdba43901fccfa09b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1493031
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Commit-Queue: Jun Mukai <mukai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639105}
13 files changed