rewrite Patch.containsTodo to handle TODOs more often and with fewer false positives
add Patch.findTodo to find the earliest instance of a TODO in a string based on Patch.containsTodo method