Convert search resource to take a builder instead of a query

This enables specifying limit and offset