lib: adding stringf() to produce C formatted std::string
lib: append a synchronous MPI mode
lib: fixing strange behavior with operator< in heap

The compare operator in the boost::heap needs '>=' instead of '>' when
heap sorted from lower to upper.

With this latest operator the next assertion fails in some cases:

   assert(std::distance(heap.ordered_begin(), heap.ordered_end()) ==
          heap.size();
lib: fixing coding style in port

- Too many tabs
- move std::for_each to ranged for
lib: removing too many use of final specifier

The start, transition and output function may be reuse in subclass.
lib: clearing the input port of children

In many place, the input port of coupled model's children are not clear.
lib: fixing the transition thread policy

We fix bugs in the transition thread policy. Now, all dsde-engine test pass.
lib: fixing bug with tn in SynchronousProxModel

The SynchronousProxModel receives tn directly from its MPI's model not
the time advance.