Rewrite TensorNetwork::contract to use low level functions
The fact that TensorNetwork:contract constructs indexSets/indexedTensors to call the indexedTensor contractions apparently causes severe overhead of the total runtime in the ADF testcase (i.e. TN:contract takes ~43% of the total time but only misc% of that is spend in dgemm). This could be reduced by directly calling the blas wrappers here.