Change either monad to record
Change either monad to record

This allows us to use `clojure.spec` with it :)

```clojure
(s/def :un/right int?)
(s/def :un/left string?)
(s/def :either/spec (s/and either/either?
                           (s/or :right (s/and either/right? (s/keys :req-un [:un/right]))
                                 :left (s/and either/left? (s/keys :req-un [:un/left])))))
```

I'm still not sure how to make it compatible with generators.

funcool/cats