Additional cleanup in convergent_matrix.hpp

- Mostly focused on cleaning up the constructor (e.g. moving
  initialization of the distributed storage arrays to a different
  method, moving initializations to the initialization list, etc.)
- Also removed explicit loops for array init and copying (std::copy and
  std::fill now)
Reliability fix in MPI-bases load() / save()

Need additional synchronization within these methods after (re)expansion
in place occurs - once this has completed on all threads, only then can
operations on distributed matrix elements begin again.