Optimize receive_counters

Remove some levels of pointer indirection
Fix buffer sent and received during main algorithm

The buffer (i.e. the registers) sent and received during counter exchange was
passed to MPI with an extra pointer.

Optimize send_counters by removing a level of indirection
Remove a pointer dereferenceing in send_counters
Optimize: dereference context in update_counters
Tweak some prints