speed up flow expiration

Reviewer: @kenchiang

This pull request uses a sorted linked list, which is simpler than what we talked about but has linear worst case performance. I think in practice it will be OK.