aces4_sipmap can simulate a multi-node aces4.

- SIPMAP can now simulate a multi-node aces4 from a single node run.
- Printing of sialx timers now pulled out into a separate file.
- aces4_sipmap takes different parameters than aces4 or aces4_profile.
- sipmap correctly calculates the barrier time (need to test)
- sipmap aggregates the timers from all simulated workers.
- SIPMaPTimers now uses vectors instead of arrays as the underlying
  structure. This is to enable bounds checking.
- SIPMPIAttr now initializes all variables to a default that will cause
  a crash if not properly re-initialized.
- StaticTaskAllocParallelPardoLoop accepts a worker rank & num of
  workers instead of a SIPMPIAttr. This is done to simulate different
  workers from SIPMaP.
- A RemoteArrayModel class encapsulates network (and later i/o)
  parameters. It predicts the time to get, put, put_accumulate a block,
  and to create, delete arrays.
- Other minor bug fixes.

TODO:
- Single node version is broken. FIX it.
- Profile interpreter also measures block wait time and saves it to
  sqlite3 database. Need to subtract out the block wait time to only
  capture the computation time.