Principles of Synthetic Biology: Engineering Programmable Organisms