Code Quality Enhancements

This pull request consists of many code quality enhancements

- Replace return code with exceptions in clang tooling main interface
- Change the `RuleBase` interface by removing the useless `const` qualifier
- Take care of the memory management for various modules
- Explicitly cast method to `void` when return type is ignored by intent