Mixin.prototype.reopen calls didApply if available

My use-case:

```javascript
var Singleton = Ember.Mixin.create({
  init: function() {
    if (this.constructor.instance !== undefined) {
      throw "Cannot create a second instance of " + this.constructor;
    }
    this.constructor.instance = this;
    return this._super.apply(this, arguments);
  },

  willDestroy: function() {
    this.constructor.instance = undefined;
    if (this._super) { this._super.apply(this, arguments); }
  }
});

Singleton.didApply = function(obj) {
  var klass = obj.ownerConstructor,
      originalCreate = klass.create;
  klass.create = function(properties) {
    return this.instance !== undefined ? this.instance : originalCreate.call(this, properties);
  };
};

var Foo = Ember.Object.extend(Singleton),
    foo = Foo.create({ bar: 'baz' });

foo === Foo.create(); // true
foo === Foo.create(); // true
```

<!---
@huboard:{"custom_state":"","order":0.07928466796875}
-->