Inferring and Executing Programs for Visual Reasoning