Subclassing `ConfigItem` is a nice way to represent new configurations! But would it be possible to make the `Config` class not something that backends subclass? I think we could get the customizability we want (plus more explicit syntax) by instead providing a decorator that lets you specify the class that the `ConfigItem` affects. I'm mostly worried about people forgetting to call the superclass init, and having a hard-to-debug error as a result, or people having to edit their backend if we happen to change the `Config` class in a way that breaks subclasses.

E.g.,
```python
@nengo.config.configures(nengo.Ensemble)
class TestConfigEnsemble(nengo.config.ConfigItem):
    something = nengo.config.Parameter(None)
    other = nengo.config.Parameter(0)

@nengo.config.configures(nengo.Connection)
class TestConfigConnection(nengo.config.ConfigItem):
    something_else = nengo.config.Parameter(None)
```