Push up bar-chart library

This should handle all the use-cases the previous two files did, but more neatly and extensibly. 

Many TODOs left, but this is usable and probably better.