Discrete Reasoning Templates for Natural Language Understanding