Tweak dynamic font-size scaling and styling for various elements

[#44281603]

Font-size is not scaled in simple linear way. In different ranges of
interactive sizes, speed of scaling is different. So, between "small"
and "medium" size, font-size is increased fast. Between "medium" and
"large" rather slow (to make model bigger, not buttons). However it's
increased fast quick when size is bigger than "large" (as we assume
that it's "zooming" behavior).

See the implementation:

// Font scaling function.
fontScale =  d3.scale.linear()
  // Domain: actual interactive size to basic interactive size ratio.
  // Note that 0.4 is "small" size, 0.6 is "medium" size and 1.0 is "large" size.
  .domain([0.4, 0.6, 1.1, 5])
  // Range: font sizes in "em".
  .range([0.6, 0.9, 1.1, 5])
  // Clamp to ensure that font is not smaller than minimum font size
  // (first value in range array above).
  .clamp(true)