The actor's owner only gets changed in an end frame task queued by `Actor.ChangeOwner`. So during this frame end task, `self.Owner` still points to the old owner, whereas we want the new one, represented by `captor.Owner`.
This bug lead to the capture notification being played when *losing* a building, but not when actually capturing it.
And check DistanceAboveTerrain instead of just vertical distance to upgrade
source.
This is necessary to avoid situations where an actor is technically on the right
vertical distance above/below ground, but not upgraded because it is located on a lower/higher terrain level than the upgrade source.
The following changes are made:
* Replaced the custom actor search with ProximityTriggers.
* Added a `Sticky` flag, which causes the ownership to not revert back to
the original owner when the captor leaves.
* Added trait documentation.