Fix retina.js with images not currently visible on the page.

retina.js has a bug (which has a few issues and pull requests filed)
where any images not currently displayed (either through display:none on
the image or on a parent) will end up with a width and height of 0.

The solution appears to be to use the naturalWidth and naturalHeight
properties instead of offsetWidth and offsetHeight. Others have deployed
this without problems, and it works for the cases I've hit as well.

The problem is that we now have to maintain this, but hopefully the next
time retina.js puts out a release, it'll include a fix.