Engineering in the Biological Substrate: Information Processing in Genetic Circuits