[Stacked Bar] - Supporting stacking on negative values

Handles stacking by placing stacking negative values separately below 0 and stacking positive values separately above 0.

Closes #813 
why are we modifying stackedExtent in place instead of just setting it once?

`this.stackedExtent = [Math.min(minY, 0), Math.max(maxY, 0)`?
also is calling it `minY / maxY` a bit deceptive since it could be `X` just as easily?
also are we unit testing that domain is set properly on negative values?