On the Provenance of Software Systems: Automating Software Traceability with Knowledge Graph and Large Language Model Synergy