Use "equivalence" for all dictionary equality checks

This should fix a bug @mgarvert encountered with concatenating variables with
different array attributes.

In the process of fixing this issue, I encountered and fixed another bug with
utils.remove_incompatible_items.