Cache linting results. Reanalyze only changed packages and packages tree depending on them. Fixes #768, fixes #809