Harnessing Protein-Nucleic Acid Interactions to Engineer Biomolecular Devices