Learning Optimal Linear Precoding for Cell-Free Massive MIMO with GNN