Add support for search API v3

We should add docstrings even for private functions. Have I done that in the rest of the code? Probably not, but I'm still going to judge. <3

Also, I often prefer to use `^{:private true}` in spite of `defn-`, just for consistency since clojure/core guys have been very clear that they don't intend to add private variants of all defining macros and such. That said, I don't really _mind_ or anything, just mentioning because perhaps you will feel the same. :)