Add story 006_refactor_fact_origin_to_provenance_fact
Refactor DataFact < Fact into Fact

* will use composition on the object later
  (e.g. object can be DataObject, RefObject, ...)
Refactor FactOrigin to ProvenanceFact

* ProvenanceFact is now a subclass of Fact
* uses same collection as Fact
* a ProvenanceFact can have an empty provenance_id
Graph::Base only 1 fact_collection; FactCollection#by_subject