Implement HyperDex search.

There is possibly a race condition in search that occasionally leads to a
`Left HyperclientGarbage` result too soon. When that condition does not
occur, the search succeeds to completion.