Refactor the server class to pull the searching out into a class

This is because the server class was getting big and clunky, and I
wanted to pull this out into its own thing so that I can test it
separately, and maintain it outside the context of Server
More api search stuffs.
Test fixes
Updating readme