Sweep eviction improvements

Improve interactions between sweep and eviction by not holding the handle list lock while walking files.
The only thing that changes the next pointer is `SLIST_REMOVE`, done by `__conn_dhandle_remove`, and that is only done while holding the handle list lock.