Save the Alpha value in the .C files.
Better version os SaveColor.
Implement correctly the projections from a TProfile2D to TProfile and from a TProfile3D to a TProfile2D.
Add corresponding tests in stressHistogram.
This fixes bug ROOT-6220
Fix for XQuartz + OpenGL: if window unmapped before canvas deleted,

making GL context current hangs ROOT completely.
Fix for GL-pad.
Call a function instead of duplication.
make thing more logical and uniform.
Restruct functions
Add support for kCharStar in CompareContent
Use CompareContent also in PostLoadCheck
Bundle the looping over the legacy checksum check.

Add TClass::MatchLegacyCheckSum and TStreamerInfo::MatchLegacyCheckSum
to factor the looping over the set of legacy version of the checksum
calculations.
Expand doc to add some more historical information.
Consistently use ECheckSum.

ELegacyCheckSum has been renamed ECheckSum and is now used as part
of the GetCheckSum interface.

Conflicts:
	core/meta/src/TClass.cxx
Fix direction of error message
Add code for backward comp. for broken case of abstract classes.

The code would be necessary only in very rare case and is added
here (but hidden behind an ifdef) in case this becomes a blocker.
One of the case would an abstract class that was written to
ROOT file older than v5.18 and in a circurcunstance that led
to an empty TStreamerInfo to be stored in the file and
if in addition one of the data member was declared using a
typedef _and_ the current class definition uses a different typedef.
Fix CompareContent for collection with typedef.

When testing a collection and there is a name mismatch, check not only
the name but also the content (and fix the v5 name as necessary).

In addition the previous test/condition was looking at the wrong names.
Prefer newer StreamerInfo.

When the class is loaded or known to the interpreter and the TStreamerInfo being read from
a file is equivalent (different checksum but same real content), we need to prefer the
one from in-memory as it would have better names (for the classes).

Conflicts:
	io/io/src/TStreamerInfo.cxx
Implement new CheckSum (without typedefs)

The new checksum use the normalize type where the typedef have been
removed except for the opaque one (Double32_t, Float16_t, string,
Long64_t, etc.)
Attempt to automatic fix bad STL collection names.

In ROOT v5, if the user created a data member of an STL type whose
content was a nested class or typedef but the user did not spelled
out the fully qualified name, CINT would record the 'wrong' name.

With:

namespace Exp {
  typedef Inner Alias;
  class Outer {
     vector<Alias> fValue;
  };
}

The recorded type was 'vector<Alias>' rather than vector<Exp::Inner>.

This fixes ROOT-6081.

Note that file contains this type of constructs, can not be read in
bare root without using TFile::MakeProject.  Without any compiled code
to help, it is harder (i.e. would be possible but is probably not worth
the investment) to distinguish between a vector of enums type and a
vector of misspelled type (We would have to 'assume' that any vector
of enum type might have been a class type).

Note that when the wrongly recorded type contains a typedef (like Alias),
the ROOT file does not contains enough information (it does not contains
any typedef information) in itself to read the file without access to the
user code (i.e. in bare root, the file is not readeable unless one
introduces 'by hand' the missing typedef).
v5's TDataMember::TrueTypeName does not conserve Double32_t, so we need to use TClassEdit