Communication And Coexistence: Engineering Tools For Synthetic Microbial Ecosystems