Remove threading in main.py

It just makes things more complicated, even though I don't use it yet.
Error out with exceptions instead of exit
Don't import * from settings
Don't import * from utils
Improve section comments in util.py
Simplify some expressions
Use generator expressions instead of for loops
Remove commit message titles
Reorganize code in analyzer.py
Capture refs state before fetching changes

This way, the tool will detect a change that happened since the last run.
Merge branch 'cleanup'