bg scale clean-up

These changes accomplish three things:
- move tick label generation to `plot/util/scales.js` (@cmakler this paves the way for generating mmol tick labels in a good place, IMO)
- remove any tick labels that fall outside the extent of the loaded data (necessary since we're not letting D3 generate the tick labels on its own)
- clamp any SMBG values over the max CGM value (which is 401) to the top of the scale