Sweep eviction improvements

Improve interactions between sweep and eviction by not holding the handle list lock while walking files.
I'm not entirely sure of this. If the handle we are looking for became the end of the list while we were using it the next pointer would have been updated to NULL by something that took the dhandle_lock?