LocalMatrix and ConvergentMatrix to separate header files
Index type now parameterized in test01
Removed ConvergentMatrix::as_local_matrix
Added remote (read-only) random access

Available via the ConvergentMatrix::operator() method
Slightly cleaner ConvergentMatrix::operator()

Fewer casts necessary w/ get() method on global_ref objs
More careful MPI usage in run_ext_test.cpp

MPI initialization and mpi.h inclusion not more carefully controlled via
preprocessor defines.
Bugfix: Safer local data allocation / management

Previously, the underlying local data array was allocated on the heap
via "new" w/o ensuring it was within the GASNet remotely addressable
segment.

Before introducing ConvergentMatrix::operator(), this was alright,
because explicit casts to global_ptr objects were only performed in
cased where access was local (e.g. direct copy into or out of the
array). However, when the former was added, the addressability
requirement becomes strictly necessary.

Since the local data array is now managed via allocate / deallocate, the
latter must be performed in the ConvergentMatrix destructor, meaning
that a ConvergentMatrix instance must be kept alive for the life of the
abstraction (i.e. once freeze is called and a raw pointer is returned).

Also in this commit:
- Further cleanup in ConvergentMatrix::operator(), though requiring a
  hack that will soon be mooted by updates to upcxx.
Bugfix: Bad predicate in get_local_data() assert
Removed outdated examples
Renamed "freeze" to "commit"

Sounds a bit nicer, per Kathy Yelick's suggestion. Also minor changes to
private variable names under the TEST_CONSISTENCY case.
Updated README
Added reset() method

Assuming the ConvergentMatrix instance is already in a frozen state, the
local storage array is reinitialized to zero on all threads and the
abstraction is unfrozen. TEST_CONSISTENCY case is treated accordingly.