Add protection in case no file is associated to the decl
Fix for ROOT-6964: when headers are to be inlined do not include umbrella

when a header is to be inlined, we do not ask cling to #include it but
we rather pass to it its content. This allows to associate the right
file to the declaration when creating the fwd declaration payload. As a
result, cling is able to remove from the ast the default template
and function arguments in case the real header is parsed afterwards.
Around this change some cleanup of the code was put in place for example
reducing the calls to declare which have an overhead (it is always faster
to declare a string containing N lines of code than to declare N strings
with one line of code each)
Install custom assert.h in clang resource dir (CMake part)
Fix issue reported on the forum (http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=19041)

Usually, TGObjects are equal if they have the same window identifier. But when the TGObjects have not been created by the Window manager (e.g. a TGLVEntry), then we have to use the default TObject equal comparison
Only search for regular names; should fixe #include of ROOT-6976.
ROOT_SVN_REVISION is gone; rely on ROOT_VERSION_CODE.
Add Find(DeclId_t)const. Make DeclId_t public; it's used by public interfaces.

Unlike Get(), Find() does not create an element but only searches the DeclId_t collection.
Refactor - early exit if Get() finds an existing element.
Do not lookup by name when unloading but by DeclId_t.

Fixes spurrious, occasional (platform-specific) failures in
roottest/cling/reload/reloadvector:
Trying to unloading the global function reloadvector(), the callback told TCling
that an unload was about to happen.
TCling called FindObject("reloadvector") which (on some platforms) created new
elements and (sometimes) deserialized decls, which in turn appended a new
transaction which then failed the assert that the transaction to be unloaded is
indeed the last one - because a new one was appended in the meantime.
When inlining headers make sure to look for the full path
Allow to run precision checks also with fast-math enabled

Minuit and Minuit2 perform this test (simplified version):

void mntiny(double epsp1, double &epsbak){
   epsbak = epsp1 - 1;
}

int main(){

double epstry = .5;
double epsp1=0., epsbak= 0.;
for (int i = 1; i <= 100; ++i) {
   epstry *= .5;
   epsp1 = epstry + 1;
   mntiny(epsp1, epsbak);
   std::cout << epsp1 << " " << epsbak << std::endl;
   if (epsbak < epstry) {
      std::cout << "Success!\n";
      break;
   }
}
}

here gcc and clang are so good at optimising that they avoid to add
and subtract one. Adding volatile the compiler cannot optimise this
loop.
Add a new function TMultiDimFit::GetCoefficientsRMS (from Y.Fisyak)