Add Isa schema for hierarchies

This turned out to be particularly useful when working on a problem where hierarchies were a good fit. It's not a commonly used tool in Clojure but I think this would be nice to have in `schema.core` for when it is. I found the main advantage over an approach with `pred?` was a better validation messages.

I positioned the code where I thought it made sense but I'm happy to move it.