Implement basic thread load balancing

Implement load balancing for local threads. Load balancing does
not occur across the MPI cluster. Load balancing only occurs at the
root index level (the next available root index in the graph
is assigned to the next available thread).

Across the cluster, distribution is static. Each MPI rank
is responsible for graph indexes where [ (index % mpi.rank) == 0 ].