Use "proper" epslevel bound in chebtech.plus().
Use "proper" epslevel bound in chebtech.plus().

This partially addresses #1206.  Before this commit, if we made a chebtech2
like

>> f = chebtech2(@(x) sin(1e4*x))
f =
  10204x1 chebtech2 array with properties:
      coeffs: [10204x1 double]
      vscale: 0.999999988857274
      hscale: 1
     ishappy: 1
    epslevel: 2.220383606032091e-12

and added zero to it, the epslevel would miraculously improve to 2.22e-16:

>> f + 0
ans =
  10204x1 chebtech2 array with properties:
      coeffs: [10204x1 double]
      vscale: 0.999999999770504
      hscale: 1
     ishappy: 1
    epslevel: 2.220446049250313e-16

The reason this happens is that in updateEpslevel, if the epslevelBound
argument is not supplied, it defaults to chebtech.techPref().eps, which is
2.22e-16.  This gets used as an upper bound when determining the final
epslevel, which is too optimistic.  With these changes, we supply a "proper"
bound using Hale's Heuristics (see documentation in @chebtech/chebtech.m), and
the epslevel is unchanged:

>> f + 0
ans =
  10204x1 chebtech2 array with properties:

      coeffs: [10204x1 double]
      vscale: 0.999999999770504
      hscale: 1
     ishappy: 1
    epslevel: 2.220383581800533e-12

ilovejs/chebfun,alshedivat/chebfun