Add basic ACL support

When a child has the same ACLs as a parent we repeat the ACLs on the
child. Attachments ACLs aren't supported, because we need an "everyone"
group, which is not yet supported.

We also don't handle anonymous pages.

The changes to tests in this commit makes diff unhappy enough that the
tool gives up and produces horrible results. Passing --minimal to 'diff'
and 'git diff' is almost essential when looking at this commit.
4 files changed