Generating Pragmatic Examples to Train Neural Program Synthesizers