Programming synthetic microbial communities for coexistence, coordination, and information processing