Clean up extensions a bit

Removes newest form of registering extensions, more consistently sets and uses an extension's `ext_name`, and makes a lot of things errors instead of just log messages in hopes that people can't get too far with a messed-up config.

I reverted the new `MyExtension.register` way of registering because it's a third way to register extensions that nobody's using yet, and it seemed better to have a smaller number of ways to do it. I also like the block form best, where you can avoid requiring the extension's definition at all if it's not activated.