Cache linting results. Reanalyze only changed packages and packages tree depending on them. Fixes #768, fixes #809
Run all linters per package. It allows unloading package data when it's processed. It dramatically reduces memory (and CPU because of GC) usage. Relates: #337
Add 2 new linters