Port to core.logic.nominal

Straightforward translation from the miniKanren version, with no
further optimizations.

Uses hash instead of absento, which requires making the closure gensym
a nom, passed around as a package.

We could augment this package to do shadowing, but right now, the
built-in are symbols instead of noms.