Defer entity deserialization

This introduces EntityHolders which are used by EntityContent
as placeholders for not-yet-deserialized entities. This should
avoid overhead especially for creating deep copies.

Bug: T74158
Change-Id: I51f3d5860859c25acfb535d4a5725ceced9c090b
(cherry picked from commit 18fcfbc3e736f7004aee9999e66dc65cff7922f0)