UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback