I don't really want to add this as-is since:
 * We'll have to support it until 2.0 for back compat.
 * Tied to a specific markup structure
 * A label's "for" attribute should take ids, not names.

I realize we want this UI to behave in a certain way for 1.9 for usability, so my preference is that we write this in a one-off, not-to-be-reused way we can toss in the near future in favor of something more general purpose and sustainable.

For comparison, Angular way:

```html
<input type="checkbox" ng-model="simplecache_enabled">

<label ng-class="{'elgg-state-disabled': !simplecache_enabled}">
  <input type="checkbox" ng-disabled="!simplecache_enabled">
</label>

<label ng-class="{'elgg-state-disabled': !simplecache_enabled}">
  <input type="checkbox" ng-disabled="!simplecache_enabled">
</label>
```

No custom javascript needed (!!). If the `ng-*` attributes bug you, you can just add `data-` in front.