Coevolution mechanisms that adapt viruses to genetic code variations implemented in their hosts