Result filtering on search (also known as Partial Search)

First take at refactoring search to allow selective results, rather than returning the whole thing.
Yeah very large +1 on getting `-a` to work correctly with partial_search, with back-compat.

Also would like to see a option/method on search which incorporated the magic of converting it back to look like a nested node object given the search information.  Which way to do the API was up for a lot of debate, and clearly there's a use case for the other way of returning node information from partial search results.  Would like to see that done and made reusable.