Remove failing spec, associated w/ orphaned code

It would be nice to remove Source#create_events!, which is no longer
being used in actual code, but some SourceParser-based specs still depend
on it to for setup for specs that are still relevant. Eventually refactor.
Avoid saving nil Events/Venues when Abstract* equivs find them destroyed
Prevent saving models if a loop in duplicate checking chain is detected

It used to only do loop detection when looking up a model object's
progenitor, usually after it's been saved. Now it also detects the loop
earlier to prevent it being saved in the first place.

Also fixed #progenitor-based loop detection so it will still detect loops
if the model's :duplicate_of_id attribute is set directly.