[mc] Bug: MC was reading from the wrong region
[mc] Add mc_snapshot_read_pointer()
[mc] Fix bound check in mc_snapshot_read_region
[mc] Fix lookup of malloc fragment type

In some cases, the type was looked up in the current heapinfo and not
in the snapshot one:

 * in some cases this is not an issue as state->heapinfo2 is currently
   the same as the current heapinfo but this solution is more robust;

 * if we were supposed to look it from state->heapinfo1 this is wrong.
[mc] Fix bad parameter passed in mc_diff

In the following calls:

    compare_heap_area_with_type(state,
      area1, area2,
      area1_to_compare, area2_to_compare,
      snapshot1, snapshot2,
      previous, type, size, check_ignore,
      pointer_level);

    compare_heap_area_without_type(state,
      area1, area2,
      area1_to_compare, area2_to_compare,
      snapshot1, snapshot2,
      previous, size, check_ignore);

areaX and real_areaX_to_compare do not point the same data in different
address spaces in some cases.

Sometimes real_areaX_to_compare is adjusted to point to the beginning
of the block or fragment:

    area1_to_compare = addr_block1;
    // or
    area1_to_compare = (char *) addr_frag1 + offset1;
      // (when offset1==0)

but areaX is not adjusted accordingly and still point to the original
data: in the called compare_heap_area_with[out]_type(), the two values
are inconsistent.

Moreover in some cases, the type does not correspond:

  * areaX_to_compareX is the beginning of the fragment ;
  * type is the type of areaX,  not the type of the fragment.
[mc] Fix check on type name

The name was changed to include 'struct/class'.
Merge branch 'mc-fix' into mc-fastsnapshot

Conflicts:
	src/mc/mc_diff.c
[mc] Fix name of mc_snapshot_region_memcmp
[mc] Avoid memory allocation for flat snapshots in mc_snapshot_region_memcmp()
[mc] Use mc_snapshot_region_memcmp() in compare_areas_with_type()
Add support for C++ in tools/sg_unit_extractor.pl
[mc] Move page store test from the integration test into the unit test infrastructure
[mc] Add unit test for mc_snapshot
[mc] Test flat snapshots as well
[mc] Add unit tests for reading/comparing the whole region in mc_snapshot
[mc] Fix name of mc_snapshot_memcmp()
[mc] Fix test on type in mc_diff
[mc] Remove 'previous' variable ind mmalloc_compare_heap()

It was not used.
[mmalloc] Avoid useless memset0
[mmalloc] Add documentation