Add HashCollection

* with O(1) fetch of an element by id
Remove unneeded override in Fact::Collection
Add FactOrigin::Collection

* Trying to overwrite a key generates KeyOverwriteError