Object console previewers

This should take care of #54.

I have to say I'm a little bit uncertain about all of this. I started working on this without knowing much of how the console works, so I was going back and forth for a while, ending up with weird problems I couldn't understand easily.
Anyway, this seems to work fine for now. This takes care of objects, arrays, dom objects, sets, maps and errors.
I'd feel better if someone who knows the console better than I do took a look at the general approach.

For info, this only previews objects when they are evaluated (i.e. if you type `document.body` in the console prompt for instance). `console.log(document.body)` will *not* output a formatted object for now. I have to look into how this works next.
I thought we were trying to move away from special SpiderMonkey extensions? Or is that only for things that ES6 has a potential replacement for?