Watermarking Language Models with Error Correcting Codes