Fix touch last_pushed_timestamps

Calling touch_last_pushed(object) inside the find_by_batches is bad.
find_by_batches won't find updates that are made while find_by_batches is running.
Those updated objects will have updated_at < last_pushed_timestamps despite never being pushed.

I refactored the code to be explicit about what timespan of updates is being pushed by this push_batches call.