Added a standard STL iterator, reduces the chance for error through counter-intuitive behavior.
Got units-verified output from ModelE for use in desm.  Many changes:

* Added m.info.gcm_out_file attribute to the GLINT2 configuration: an optional variable telling the GCM-specific part of GLINT2 to write out exactly what it sees coming from the GCM (so it can be replayed later with desm).  This is read into GCMCoupler::gcm_out_file.

* Added contracts/modele_dismal.cpp, contract for ModelE coupling to DISMAL.

* Removed year1, timei and dtscr from glint2_modele_new(), since they are not yet initialized in ModelE at the point that function is called.  Moved to a new function, glint2_modele_set_start_time(), which is called later.

* Promoted IceModel::GCMParams to a top-level class (glint2/GCMParams.hpp)

* Removed IceModel.cpp (no code in it, after GCMParams was promoted).

* Removed repeated GCMParams from IceModel.  Now, IceModel maintains a back-pointer to its parent GCMCoupler.  This allows GCMParams to be changed after things have been set up (in glint2_modele_set_start_time())

* Fixed units for gcm_outputs (items coming out of ModelE) in GCMCoupler_ModelE.cpp

* Create giss/mpi.hpp and template function gather_msg_array().  This should be used instead of the current inline code in GCMCoupler.cpp

* Made relevant parameters in ModelEDomain both public and const.  (Provides accessibility)
Updated code to compile with latest PISM (cadc97a181a2eb2e293d38a8fe3791c3ef3d7d1c).

* The biggest change is the new "pism" namespace, allowing for more clarity of what is part of PISM vs. GLINT2.

* Renamed glint2::pism to glint2::gpism, to avoid potential ambiguity with PISMs new namespace "pism".

* Some changes on the ModelE/GLINT2 contract (not yet finished).