Engineering the Genetic Code: Expanding the Amino Acid Repertoire for the Design of Novel Proteins