Rewrote BarChart for speed. Closes #414.

Rewrote BarChart to use several views in order to reduce the number of OnDraw calls and exploit Androids hardware acceleration to the fullest.

BarChart is now a container, which has the following children to render the chart:
- BackgroundView
- Row views (y-axis label, bar, value label)
- Loading overlay
- Empty overlay

Has slightly tweaked animations compared to the previous version.

Closes #414.