More robust initialize overriding.

In case the constructors prototype contain's an initialize method but the config passed into the current constructor does not, this pull request will use the prototype's instead of ignoring it completely.

Before if there was situation like:

```
A = Backbone.Model.extend({
   initialize: function() {
    ///stuff
   }
});

B  = A.extend({})
```

`Backbone.Safe` would ignore the `initialize` function on `A`, because it wasn't present in the config.
Now it will take it into account.