Multi-level Reasoning for Robotic Assembly: From Sequence Inference to Contact Selection