Instead of showing the progress reports for each child algorithm
individually, which leads to repeated 0->100% progress for every
step of a model, we proxy the progress reports and account for the
overall progress through a model as well. This means that
the progress accounts for both the progress within the current
model step AND the total number of steps left to execute.
* add In annotation
* remove struct forward declarations
* fix members initialization list in header
* merge removal code for function bodies and constructor definition