Give each linter a unique ID that also indicates warning vs. error

Fixes #68.
Fixes #30.