Add a ProvenanceResource, inherit from Resource
Check and set the provenance_subject on the facts added to a resource.

* if facts have nil provenance_subject, set them in a dup
* if facts have correct provenance_subject, add unchanged
* if facts have different provenance_subject, raise Error