“Martin v. Boise and Grants Pass v. Johnson have prevented cities from punishing people for sleeping in public spaces when they have nowhere else to go.”