ops: split copy/map so we can map in-place

xxx: this change is also conflated with another change to not have a
model component be associated with assets since components can't be
shared between entities. Recent sanity checks picked this up as an
issue.

xxx: another issue identified in this commit is that we are missing
a way of reaping ui objects explicitly in a way that lets us unregister
objects. This means that when we re-load a ui we aren't unregistering
all the objects of the old ui first and so we can see duplicate id
errors and even end up continuing to refer to old objects.
Move RutEntity under rig/ as RigEntity

This is a pretty huge re-arrangement because of the various dependencies
on RutEntity. All of the components have moved as well as RutAsset,
RutAssetInspector, RutPropInspector, RutInspector, RutDepthOfField
and RutDownsampler.

This was done because we need more specialized garbage collection for ui
objects, tightly coupled with rig. More generally it has also seemed a
bit inconvenient to develop entities, components and assets as rut/ apis
when they they are so central to a rig ui.