Move dut::init() into C++

This code was a bit hairy to write directly in LLVM IR.  Additionally,
there shouldn't be a significant performance advantage (maybe a bit of
compile time, but it shouldn't be much) to doing it in IR.
Only call dataflow_order once

I still had the second call to dataflow_order inside the LLVM IR
generator, which is no longer necessary because the input to all the
generation code has been ordered already.