Towards Truly Zero-shot Compositional Visual Reasoning with LLMs as Programmers