Task T7 moderator evidence

Implemented App\Services\NameTagResolver::moderatorFor(Service $service).

Covered behavior:
- Non-empty services.moderator_name wins and is trimmed.
- Without override, first visible agenda item (is_before_event=false) ordered by sort_order then id is used.
- Multiple responsible names are joined with comma-space: "Anna Müller, Tom Klein".
- No override and no visible agenda item returns null.

Verification:
- RED before implementation: ddev exec php artisan test tests/Feature/NameTagResolverTest.php failed because App\Services\NameTagResolver did not exist.
- GREEN targeted: ddev exec php artisan test tests/Feature/NameTagResolverTest.php -> 7 passed.
- GREEN full suite: ddev exec php artisan test -> 532 passed (2659 assertions).
- Pint: ddev exec ./vendor/bin/pint app/Services/NameTagResolver.php tests/Feature/NameTagResolverTest.php.
- LSP diagnostics clean for app/Services/NameTagResolver.php and tests/Feature/NameTagResolverTest.php.
