Correct explain output for keys spec failure
Correct explain output for keys spec failure

When following the guide using the current version of Clojure (`1.9.0-alpha14`) I get different explain output to what the guide presents.

When evaluating:
```clojure
(def email-regex #"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63}$")
(s/def ::email-type (s/and string? #(re-matches email-regex %)))
(s/def ::acctid int?)
(s/def ::first-name string?)
(s/def ::last-name string?)
(s/def ::email ::email-type)
(s/def ::person (s/keys :req [::first-name ::last-name ::email] :opt [::phone]))
(s/explain ::person  {::first-name "Elon"})
```

Rather than a single message with a combined predicate:
```
val: #:my.domain{:first-name "Elon"} fails spec: :my.domain/person predicate: [(contains? % :my.domain/last-name) (contains? % :my.domain/email)]
```

I get one message, and predicate, per missing key:
```
val: #:my.domain{:first-name "Elon"} fails spec: :my.domain/person predicate: (contains? % :my.domain/last-name)
val: #:my.domain{:first-name "Elon"} fails spec: :my.domain/person predicate: (contains? % :my.domain/email)
```

I'm guessing explain behavior for keys specs has changed in a recent release.

clojure/clojure-site