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 
I'm a little confused. Why do we need both this and `barLeftOffset`? And I guess the documentation does need a rework but I think it's better to do a full review and update separate from this PR