Make Factories::Fact.fact_2_with_subject and clean-up

* to add more variability in the facts factories
* rename subject to provenance_fact_subject where relevant
Add Fact#complete?, ProvenanceFact#complete? and use to validate Fact::Collection#<<

* to also keep a fact_1 Factory with empty subject, this required
  a large refactoring in the tests (using fact_2_with_subject instead)
* once the store of a FactsWithProvenance is ready that can be used
  for proper adding of facts (also without prefilled subject) into
  the Fact::Collection