declare(strict_types=1) in every file, finally

The codebase had it in about 60% of files, which is the worst of the three possible states because nobody can tell which behaviour applies where.

// without it, at the call site
function age(int $years): string { /* ... */ }
age('40');        // fine. coerced to 40.
age('40 years');  // TypeError, but only since 8.0

// with it
age('40');        // TypeError

// the rollout, which is not a one-line change
$ find src -name '*.php' ! -exec grep -lq strict_types {} ; -print | wc -l
412

$ vendor/bin/rector process src --config=rector-strict.php
$ vendor/bin/phpunit
Tests: 1,412, Failures: 7

The seven failures were the point of the exercise: five were tests passing numeric strings from a fixture, and two were production code passing a value straight from a query result, where MySQL returns integers as strings over the text protocol. That second category is the one that makes this worth doing — it is a type error that had been silently coerced for years and would have surfaced eventually as a comparison that behaved oddly.