Changes around how embed roots are set

I'm adding a generic SetAccessPolicy function. The semantics are only the
owner can change the policy and the next ViewTreeClient that is
embedded in the view picks up the access policy. This way access
policies are locked to the life of the connection. The API also allows
us to add other policies in the future.

BUG=none
TEST=covered by tests
R=fsamuel@chromium.org

Review URL: https://codereview.chromium.org/1317713006

Cr-Commit-Position: refs/heads/master@{#347452}
22 files changed