Fix fatal typo ignoring potential change in the content of maps
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).