Add new options xRangePad and yRangePad

These options provide a fixed margin (in pixels) around the
user-specified or autoselected axis range to ensure all data points are
fully visible. If these are not set by the user, behavior reverts to
backward compatible mode.

This helps avoid the issue of data points drawn at the graph edges not
being properly visible.  For example, in a 100-pixel high plot area, a Y
coordinate of zero on a graph with yrange [0, ...] will be scaled to
domY=100 which is outside the 0..99 visible area.

If I'm understanding it right, the original padding algorithm works
as follows:

  Add 10% padding for automatic Y ranges, but not for user-supplied
  ranges, and move a close-to-zero edge to zero except if avoidMinZero
  is set. If logscale is set, add a variable amount of padding at the
  top but none at the bottom.

This is not very intuitive, and lines drawn at the edge of a
user-supplied range will still be invisible.

The new algorithm consistently ensures that there are at least
{x,y}RangePad pixels available for drawing outside of the data range,
both for user-specified and autoselected ranges.

Setting a small xRangePad combines nicely with drawAxesAtZero,
it will provide tick marks next to the legend due to the grid extending
slightly past the axis.

See the included gallery demo 'Edge Padding'. The default setting
corresponds to legacy behavior. Recommended settings:
  includeZero: true,
  drawAxesAtZero: true,
  xRangePad: 4,
  yRangePad: 10
Address code review comments
Re-do the fix for stacked graph highlighting

This reverts the change from https://github.com/danvk/dygraphs/pull/211
and instead provides a boolean arg to the plotter so that it can decide
not to draw if needed.

The problem with the approach from #211 is that this prevents error bars
from being highlighted, and those should be redrawn on mouseover.

Fixes issue 424.
Fix for Issue 378: Mouse gradually drifts off of range selection handle
Merge branch 'master' of github.com:danvk/dygraphs
Call addEvent on graph instance where needed for auto removal
code review: rename to .singleSeriesName
Making dygraph-tickers.js slightly more independent.
rv 34ad56b341, which introduced issue 432
Merge pull request #218 from walkingeyerobot/master

Make dygraph-tickers more independent
Merge pull request #217 from paulfelix/master

Fix for Issue 378: Mouse gradually drifts off of range selection handle
Merge pull request #216 from klausw-g/issue-424-b

Re-do the fix for stacked graph highlighting
Merge pull request #210 from klausw-g/range-pad-2

Add new options xRangePad and yRangePad
Regression test for issue 430: Incorrect rendering when all values are negative and the same
Add another test for DST transitions
Fix issue 176, which involved duplicated x-values in stacked graphs
Move KMB/KMG2 formatting into default formatter function (issue 414)
Fix a few lint errors
fix & regression test for issue 355: Row number Issue
Fix & regression test for issue 363: Calling setSelection() after an updateOptions may have no effect