Synthesis of Controllers to Create, Maintain, and Reconfigure Robot Formations with Communication Constraints