Simplified Search module external interface

Don't export Search(..) internals. Export a runSearch function that runs
in the IO monad. What other Monads are layered on that in Search should
not be exported.