Implement Stacked and Clustered Bar Plots 

They descend newStylePlot, which implements the new dataset api.

TODO:
- [x] Make issue to track smarter stacking logic (account for out-of-order case)
- [x] verify jsdoc
- [x] make issue to track adding animations
- [x] make issue to track enabling horizontal mode
- [x] add more unit tests
- [x] make issue to change accessors on NewStylePlot so they get seriesKey
- [x] move the quicktests into standard quicktest format (.js)

Example usage:
```
data1 = [{name: "jon", y: 1, type: "q1"}, {name: "dan", y: 2, type: "q1"}, {name: "zoo", y: 1, type: "q1"}];
data2 = [{name: "jon", y: 2, type: "q2"}, {name: "dan", y: 4, type: "q2"}, {name: "zoo", y: 2, type: "q2"}];
data3 = [{name: "jon", y: 4, type: "q3"}, {name: "dan", y: 15, type: "q3"}, {name: "zoo", y: 15, type: "q3"}];

xScale = new Plottable.Scale.Ordinal().domain(["jon", "dan", "zoo"]);
yScale = new Plottable.Scale.Linear();
var colorScale = new Plottable.Scale.Color("10").domain(["q1", "q2", "q3"]);

var xAxis = new Plottable.Axis.Category(xScale, "bottom");
var yAxis = new Plottable.Axis.Numeric(yScale, "left");
stackedBarRenderer = new Plottable.Plot.StackedBar(xScale, yScale)
  .addDataset("d1", data1)
  .addDataset("d2", data2)
  .addDataset("d3", data3)
  .project("x", "name", xScale)
  .project("y", "y", yScale)
  .project("fill", "type", colorScale)
```
`d` is an explicit `any` because `d3.values()` always returns an array of `anys`. ideally we should change the typedef of `d3.values` so that it is parameterized based on the type it takes in ... but for now doing `var datasets: IDatasetDrawerKey = ...` would be a good fix (although i think its OK either way)