Allow limiting of real_search results

Currently `real_search` returns all keys. Add an extra optional parameter `start`. Return keys from `start` to `start + rows` if `start` is not `None`, else use the previous behaviour of returning all keys, fetching them in `rows` size batches.
+1 on adding the asserts and after that I think we're good.