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.
I thought it might be difficult, since we doing know what order the results will come back in. Maybe I could add checks to make sure that `len(results) == 2` and `len(results_new) == 1`?