Java bindings: allow streaming access to find{DataObjects,Executions}

DXSearch.ObjectProducer<T> now implements Iterable<T>, which lazily loads the
results when you iterate through them. As before, you can use asList if you
want to buffer all the results up before retrieving them.