Zack Greinke, Arizona Diamondbacks