RLEF: Grounding Code LLMs in Execution Feedback with Reinforcement Learning