Fix broken rendering in Firefox

The <svg> renders very small in Firefox, something like 20x18px. This is
because sizing and measuring of <svg> tags is completely broken in Firefox.
Setting the width and height to 100% is ignored. From what I found on
StackOverflow, there are two ways to fix this.

One is to set html, body { width: 100%; height: 100%; } . This makes the
<svg> tag cover the entire page for rendering purposes (setting
background-color: red; on it makes the entire page red), but makes it
100x100px for measuring purposes.

The other, which is used here, is to absolutely position the <svg> tag.
This fixes the sizing for both rendering and measuring purposes.

Even with that, measuring <svg>s isn't easy in Firefox. Things like
.innerHeight are undefined, and get*Rect() functions return 0x0. The
only way to accurately measure an <svg> in Firefox is to use
getComputedStyle( svgElement ).height, then hope that the return value
has unit 'px'. jQuery's .width() and .height() functions implement this,
so use them to compute the dimensions of the canvas rather than
getBoundingClientRect().

Measuring <svg> elements in Firefox has been broken in various ways
since at least April 2011, and only seems to have been acknowledged
as a legitimate bug in June 2013.
https://bugzilla.mozilla.org/show_bug.cgi?id=649285
https://bugzilla.mozilla.org/show_bug.cgi?id=874811