Release _collection of violation sets in ~Results
Simplify getStmtDepth(Stmt *) since `stmt` is checked in depth(Stmt *) already
Leverage TraverseStmt return value to make code cleaner
Fixed memory leak by releasing local variable in UnnecessaryElseStmtRule
Explicitly cast TraverseStmt/TraverseDecl to void