Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
I guess my question is really two questions:

1. If the user provides `-a`, then we know we're only going to display the items the user asked for with that option. Is it possible to use partial search to make that case more efficient? Given the way partial search works, we'd have to do some magic to convert the result back into a nested data structure so it would display properly.
2. If we can make (1) work, then is it valuable to have this filter option, which does almost the same thing? I can see it being pretty confusing to the user, since the biggest difference between `-a` and `--filter-result` is internal implementation. On the other hand, I could see it being nice if you're using `knife search STUFF -Fjson` to export data for an external tool.