fixes issue #387 -- printing on every iteration in every block

Patch mostly to command.hpp to enable printing in every iteration in every block.

I added tests for all of the combinations I could see in command.hpp -- all 12 sampler configs and 3 optimization configs that lead to different implementations in the code.  Each test makes sure the requisite number of prints happens given a model that prints different variable names in every block.

There aren't any unit tests per se because all of the functionality is embedded in command.hpp.