1. Add new checker

Description: There are several tickets in our issue tracker that has ideas for new checkers. The subtasks will be: pick a ticket to fix, write test cases, implement new checker, test it against various projects.

2. Refactor and improve our threads code

Description: Currently whole-program analysis can only be used in single-threaded checking. For instance the "unused functions" checking only works in single-threaded checking.