[hist] Fix pattern-matching bug in TFormula::HandleLinear()
[hist] Fix pattern-matching bug in TFormula::HandleLinear()

Simple C++ code to demonstrate the problem:
```C++
TF1{"f1", "1.0++x++x*x++x*x*x", -1.0, 1.0}.Print();
```
Before this commit, running this line gave you:
```
Formula based function:     f1
        f1 : 1.0++x++x*x++x*x*x Ndim= 1, Npar= 3, Number= 0
 Formula expression:
        ([p0]*(1.0))+([p1]*(x))+([p2]*(x*x))+([p2]*(x*x))*x
```

The problem is that `TFormula::HandleLinear()` uses pattern-matching to
replace the strings representing the linear terms. This is problematic
if one of the strings is a substring of another one.

olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root,olifre/root