Fix ChangeOwner bogosity.

This adds support for changing owner from within map scripts, and fixes the traits that were incorrectly using `INotifyCapture` to update their internal references (pretty much all of them).

The need for these fixes can be demonstrated by adding the following to allies02:
```lua
	proc = Actor.Create("proc", true, { Owner = ukraine, Location = DeployPoint.Location - CVec.New(10, 0)})
	pbox = Actor.Create("pbox", true, { Owner = ukraine, Location = DeployPoint.Location - CVec.New(12, 0)})
	Trigger.AfterDelay(50, function()
		proc.Owner = player
		pbox.Owner = player
		Actor.Create("harv", true, { Owner = player, Location = DeployPoint.Location - CVec.New(7, 0) })
	end)
```

Before 543abd3, ejecting the pillbox will produce a soviet soldier that will attack you, and your harvester will not be able to unload.

I have organized this so that changing the owner of refineries or resource storage will update the references, but not grant the capture bonuses (stealing the harvester / resources).