This PR is a simpler and mergeable version of #1853 by @shamis, since
the provider changed format enough to make merging difficult.
Compared to #1853, this also puts the responsibility on each resource to
check rather than adding a new optional callback.
The process dictionary is use as a warning/check cache.