Leveraging Language to Learn Program Abstractions and Search Heuristics