add `toposort.array(nodes, edges)`
docs
avoid mutating arguments of `toposort.array`