Ejecta compat first pass, with example

I know there might be some work already being done on this, but I thought I would give it a shot. The example should be functional with latest version of [Ejecta](https://github.com/phoboslab/Ejecta).

Biggest fixes had to do with the fact that elements in Ejecta are not really elements. No `addEventListener` method, and `instanceof Image` is `false`.

The devicePixelRatio was pulled from three.js, but honestly not sure if it is required, I didn't test without it. It was in one of my first tries and I left it in.