first pass at new table cache type. nondeterminism and general bad
behavior in tabling results from the `(first ansv*)` line in the
implementation of `reuse` - there's no guarantee what that will return
for sets. Ooops.
LOGIC-112: Incorrect results with tabled resolution

The bug was introduced when we switched the answer cache to sets. In
`reuse` we were calling `first` on the set which of course won't
work.

We not have an `AnswerCache` type. This holds both the list of answers
for determining the fixpoint as well as the answers as a set for
quickly determining whether we've already cached an answer.

The additionally memory overhead does make it desirable to have more
sharing of tabled information between answer caches.
Merge branch 'master' of github.com:clojure/core.logic