don't attempt to do subqueries where there are no results
changed key_filter to filter, if no keys, future or filter is passed in, a query for all objects is used
added a key parameter
some improvements in the readme