Improving Neural Program Synthesis with Inferred Execution Traces