Turbulence: Systematically and Automatically Testing Instruction-Tuned Large Language Models for Code