A Survey on LLM-based Code Generation for Low-Resource and Domain-Specific Programming Languages