Add generation counting to Actor and Target

This allows us to invalidate targets based on arbitrary conditions,
just by bumping the actor's generation number.

The next patches will use this.
Use actor/target generations to invalidate targets on ownership change
Invalidate targets when chronoshifted

This replaces OpenRA/OpenRA#2807, without the massive cost.
Merge pull request #3397 from chrisforbes/target-generations

Target generations