Build phase,connect phase,start of simuation phase and run phase

In reply to taufeeq_khan:

  1. build_phase() is top-down because a child component gets created in its parent’s build_phase().
  2. connect_phase() is bottom-up because it was easier than making it top-down. It really doesn’t matter.
  3. Same for start_of_simulation().
  4. run_phase() is a task, so it has to be parallel so that all components’ run_phase() methods will run concurrently.