* Automated test towards PHPStan level 6
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
With this automated tests, files that are passing Level 6 are tested to avoid regressions towards Level 5 (which is the current baseline for the whole code-base)
It is included when calling `make test-all` or can be called specifically by `composer run-script phpstan-next`
* Test and example with 3 new passing files
* Use typographic quotes
* A few fixes
* Fix
* Fix not saved
* Implement feedback
* Detail
* Revert spoken English fixes
Left for a future dedicated discussion
* More reverts
* Final reverts
* Final minor
Silence irrelevant NPM errors when a test fails. See e.g. https://github.com/FreshRSS/FreshRSS/runs/3999501244?check_suite_focus=true
```text
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! freshrss@ markdownlint: `markdownlint '**/*.md'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the freshrss@ markdownlint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/runner/.npm/_logs/2021-10-25T16_15_34_166Z-debug.log
```
Efforts to reduce the resources used by CI:
* Only one git checkout
* Exclusion of irrelevant directories for several commands
* Fix some rtlcss warnings
* Move some commands from tests.yml to composer.json to make them reusasble
* Initial efforts to take avantage of all that from `make` (help welcome)
* Improved markdownlint
* Relaxed rules slighlty
* `npm run markdownlint` for automatic tests
* `npm run markdownlint_fix` for automatic syntax fixing
* Applied the fixes on all our Markdown files