"[garnet] Re-reland "Remove MakeCopyable dependencies""

This reverts commit d88a17fa05445bba54b5e8de4248999b0e1b38eb.

Reason for revert: Fixed one merge issue and rebuilt successfully

Original change's description:
> Revert "[garnet] Reland "Remove MakeCopyable dependencies""
> 
> This reverts commit 91ad810ecba010b25eda2e38e868a0f7ddead853.
> 
> Reason for revert: CQ didn't re-run tests after merge (due to new conflicts). Merged prematurely.
> 
> Original change's description:
> > [garnet] Reland "Remove MakeCopyable dependencies"
> > 
> > This reverts commit 077444b5ce477a01a0d268f82e0a0cb123b2c20b.
> > 
> > Reason for revert: relanding (revert revert) after resolving build error with merge of https://fuchsia-review.googlesource.com/c/peridot/+/245012
> > 
> > Original change's description:
> > > Revert "[garnet] Remove MakeCopyable dependencies"
> > >
> > > This reverts commit e5dee7e7d47a9d28092ad00c45f50192af4b18a5.
> > >
> > > Reason for revert: this CL breaks peridot (fxl::Closure no longer has
> > > the same semantics), which prevents garnet from rolling.
> > >
> > > Original change's description:
> > > > [garnet] Remove MakeCopyable dependencies
> > > >
> > > > [Confirmed this compiles under both x64 and arm64]
> > > >
> > > > This change replaces many std::function references with
> > > > the new fit::function, allowing functions to be passed with
> > > > move-only semantics, which is more efficient than "copy",
> > > > and safer than pass-by-reference. It also allows lambdas to
> > > > include move-only objects without requiring the MakeCopyable
> > > > workaround.
> > > >
> > > > Note that this covers all of garnet (except for eventually
> > > > removing MakeCopyable itself). Changes are forthcoming in
> > > > topaz and peridot.
> > > >
> > > > Issue: ZX-3289
> > > > Test: No behavior change
> > > > Change-Id: I3fbc402e37652f0dac807441b00ba935cf403a93
> > >
> > > TBR=abarth@google.com,richkadel@google.com
> > >
> > > Change-Id: Idce39513309f4dd84d2abfbb63891b74030ee43f
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Issue: ZX-3289
> > 
> > TBR=kulakowski@google.com,vardhan@google.com,abarth@google.com,richkadel@google.com
> > 
> > Change-Id: Ia310a86b059ee1789ce6950ab19e7344b378c34e
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Issue: ZX-3289
> 
> TBR=kulakowski@google.com,vardhan@google.com,abarth@google.com,richkadel@google.com
> 
> Change-Id: I7a223180650e11c0942af35573437402124fa624
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Issue: ZX-3289

TBR=kulakowski@google.com,vardhan@google.com,abarth@google.com,richkadel@google.com

Change-Id: Ib2325da659675d200bc11c766007b571d37fb174
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Issue: ZX-3289
86 files changed