add interface class
use ILineNumSetProvider interface in apply_regex()
intersect filter sets with threads
optimize intersect()
use progress report for apply_regex() again