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