Switch to getBoundingClientRect() and update Retina detection to fix Firefox

Use getBoundingClientRect() instead of getBBox() to work around [this](https://bugzilla.mozilla.org/show_bug.cgi?id=612118) Firefox SVG bug.

Fix basic CSS issues and update scaling determination since Firefox seems to respect the transform=scale operator and Webkit does not appear to.

Someone needs to test this on a Retina machine to ensure that the scaling is properly applied.