Add pism::Points and pism::PointsWithGhosts.

These two classes (Points and PointsWithGhosts) are "iterators" that
allow turning nested loops all over PISM into *one* loop.

There are two benefits:
- It is shorter and is easier to read and write
- The 2D grid traversal order decision is fully determined by these
  classes and is not scattered all over the code.
Switch to using Points and PointsWithGhosts.
Add IceModelVec::AccessList.

This class calls begin_access() (and end_access() at the end of the
scope) for IceModelVecs that it manages. (Nothing important, but the
code is a bit cleaner.)

Note: IceModelVec::AccessList does not check the return value of
begin_access() / end_access(). This is OK: there methods should (and
will, in the future) throw an exception if a PETSc call fails.
Disable the SWIG nested class warning.
Switch to IceModelVec::AccessList.
Remove unused IceModelVec3 methods.