text: Title: Very small range data can crash application due to divide by zero issues
  Body: I've hit crashes when trying to plot degenerate y data that's very close to 0 but not actually zero. along the lines of a series of 10^-310
  This causes the following 2 functions to blow up because when reasonable numbers are divided by almost zero it's winding up as inf and nan in some of the code 
  https://github.com/pyqtgraph/pyqtgraph/blob/243c287044ca5a720b02b37e9a456d7bed1adfa3/pyqtgraph/graphicsItems/AxisItem.py#L972
  I believe that this needs an epsilon in generateDrawSpecs:
  if dif == 0: 
  ->
  if math.fabs(dif) < 0.00001:
  
  https://github.com/pyqtgraph/pyqtgraph/blob/243c287044ca5a720b02b37e9a456d7bed1adfa3/pyqtgraph/graphicsItems/ViewBox/ViewBox.py#L1656
  and updateMatrix:
   if vr.height() == 0 or vr.width() == 0:
   ->
   if math.fabs(vr.height()) < 0.00001 or vr.width() == 0:
   vr.width might need it as well for a vertical plot