Designing Programmable Protein Switches