IRCoder: Intermediate Representations Make Language Models Robust Multilingual Code Generators