Adds the RequiresPrerequisites field into ProvidesCustomPrerequisite

and all the logic behind it.

This fixes #5958 
Pass the owner in here - caching it in the trait is unnecessary, and wrong (it won't update when the building is captured).