Many bugs fixed.
Still working on getting the correct units and unit conversions in the end-to-end system:
   a) ModelE -> GLINT2 -> PISM
   b) ModelE -> netCDF File -> desm -> GLINT2 -> PISM
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).
Changed glint2_modele API, to allow for transferring constants from ModelE.
Many changes to support coupling contracts and transfer of constants between GCM and Ice Model.

1. Transfer constants from the GCM to the Ice Model, with unit conversions as appropriate.  No more constants in the GLINT2 config file.  Callback for use with ModelEs (new) set_all_constants() is provided.

2. Coupling contracts are set up between ModelE and PISM.  Enthalpies are converted as appropriate.

3. Modified ModelE API initialization procedure, to insert GCM constant discovery step into it.

4. Changed names of unique and shared pointer casts (giss/memory.hpp)

5. IceModel_PISM::process_options() was unused, and has been removed.
Moved CouplingContract
Moved changes to PISMs EnthalpyConverter into GLINT2 codebase.
Have not yet trid to compile.
1. Converted to new names for PISM classes in pism:: namespace.
2. Use GLINT2EnthalpyConverter instead of pism::EnthalpyConverter.
Remove erroneous copyright notice
Small updates
Merged examples back into master branch.
Fixed compile errors after the merge.
Fixed compile problems, tested with examples/example1
Bug fixes, improved errors and increased tracing printouts.
New templates added:
  reshape() where destination shape is a std::vector
  vector_to_tiny() converts std::vector to blitz::TinyVector
  tiny_to_vector() converts blitz::TinyVector to std::vector

BUT... these are not needed anywhere, and have not been tested.  So for now, they are commented out via '#if 0'
Re-doing pyext/ for CMake.  It has not yet been tested.
Check-in for security purposes.  Diffs have not been checked over.
Code reviewed, and compiles.  Not yet tested.
Some bugs squashed, more to go.