Fix feature detection for greasemonkey

Greasemonkey was incorrectly treating new chat users as old chat users,
causing it to get stuck in the "loading" forever. This is because we were
trying to use DOM operations for feature detection before the DOM was ready.

I not sure checking for App.Room is the best way to do feature detection.
An alternative would be moving all the code inside the `$` callback but
I'm not a big fan of that because its harder to debug inner functions.