Add logarithmic scaling to charts.

Added logarithmc scaling. Before adding the logarithmic scaling, I had to refactor a bit to move all the coordinate calculations into the appropriate base level axis classes so that I didn't need to add the same algorithms to multiple places. Previously some of the calculations were being done in 2 different places. 

There are a lot of changes for a single pull request but I couldn't really see a way to make it more atomic than it currently is. 

All new code has 100% coverage and all code has been tested across all `a-grade` browsers.

I still have to do some perf testing. Any feedback is appreciated.