Remove "no-<feature>" classes if feature is detected

This fixes #808

I had some temporary junky tests to develop this (adding a "no-canvas" class to test/js/index.html), because I couldn't quickly see a good way to inject a specific "no-something" class during the tests. If you could point me in the right direction I'm happy to add a proper test.