A schema manager

manages a schema as an acyclic graph, and tags the nodes of the graph when they are first transacted
a direct port of https://github.com/rkneufeld/conformity/blob/master/src/io/rkn/conformity.clj and https://github.com/Datomic/day-of-datomic/blob/master/src/datomic/samples/schema.clj