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
Merge branch 'master' into commit_processing
factored in account and committed by