Refactor add_offence and auto-correct logic

* introduce `convention` and `warning` wrappers around add_offence
* add node to the offence info
* call `autocorrect_action` from `add_offence` instead of explicitly