let IHierarchy impls be maps

This just flips the check, assuming things that aren't IHierarchy are core hierarchy maps. I found it convenient to defrecord an IHierarchy with parents/descendants/ancestors for core hierarchy compatibility.