Numerical Integration on Graphs: where to sample and how to weigh