Dylan/charts bugs

This includes @bigsley's refactoring work, my fixes to that, a centering option for bar charts so they can be rendered with end or start of period data as well as middle of period data, and a fix for rounding errors on labels.

@azirbel @bigsley 
`barLeftOffset` displaces the bars themselves (as you mentioned this can cause them to move off the graph, which I should fix), whereas `barCentering` is supposed to explicitly declare what each bar data point is meant to represent (the start, middle, or end of a time period) and actually shifts the data. I suppose that distinction is more subtle than I originally thought it was, @bigsley would know more about `barLeftOffset`'s use cases though.