Make axis and graph labels values precision depend on graph range

Another attempt of making axis and labels values precision depend on graph range (https://github.com/grafana/grafana/pull/637). It changes the precision dynamically while zooming the graph in or out. In addition to previous attempt I added a protection from scientific notation values. It still needs some tests in real environment - it would be good to check if different data types (seconds, kBytes etc.) are viewed correctly in graphs with real data source.