Implement `Required` annotation
Add support for the
Required annotation that is applied to
ComponentData definitions. It holds an array of
ComponentData types that must be added to an entity whenever that component is also added.
The added required components become owned by the new component.
If the entity already has one of the required components, it is not added and its ownership does not change.