Delegates a given property to the related controller (or specified controller
if `controllerName` is defined. This is useful so that properties are
available to use on the controller.
function coerceControllerAlias(property) {
  return computed(property, {
    get() {
      let controllerName = this.get('controllerName') || this.get('routeName');
      let controller = this.get('controller') || this.controllerFor(controllerName);
      return controller.get(property);
    },
    set(key, value) {
      let controllerName = this.get('controllerName') || this.get('routeName');
      let controller = this.get('controller') || this.controllerFor(controllerName);
      controller.set(property, value);
      return value;
    }
  });
}