Improve frontend canister sync logic
Previously, committing frontend canister changes happened in multiple batches defined by simple heuristics that would likely not exceed the ingress message size limit.
Now, the ingress message size limit is respected more explicitly, and also a limit of total content size per batch since all content in the batch newly gets hashed in the canister.
Dependencies
Frontend canister
Sets the ic_env cookie for all HTML files only if the canister environment changed in the commit_batch method.
Use canister self-calls to avoid hitting instruction limits during commit_batch, compute_evidence, and compute_state_hash.
Motoko
Updated Motoko to 0.16.3
Candid
Updated candid_parser to 0.2.4.