Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
In answer to your questions:
1. yes, it would be more efficient (probably a lot more). I haven't looked into what magic would be required, but I know what you're talking about since the formatting is totally different.
2. That's a really good question and to be honest, I only added the knife option to expose the functionality that exists in the partial search cookbook. It may be unnecessary.

I'm wondering if the knife search functionality belongs with this functionality (or maybe should go in a different PR) since the goal of this PR really is to make partial_search method (and new search syntax) available to cookbooks without having to add the extra cookbook. @danielsdeleo @sersut  thoughts on that?