Support non-WebKit browsers

I doubt this is ready to be merged just yet, but I wanted to get a discussion going about what I've done so far.