fix: use dynamic allocation for admin/hosts endpoint and add auth check
the 64KB stack buffer overflows with 2800+ hosts, causing 502 responses.
switch to ArrayList writer for unbounded JSON response. also adds the
missing checkAdmin gate that other admin endpoints already have.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>