can.Observe makes can.Deferred into an observable

The current implementation of `canMakeObserve` is:

````javascript
canMakeObserve = function( obj ) {
  return obj && (can.isArray(obj) || can.isPlainObject( obj ) || ( obj instanceof can.Observe ));
}
````

As `can.isPlainObject` returns true for a `can.Deferred`, a promise that is part of a model's raw data values will be treated as a plain object to be wrapped as a child `can.Observe` with observable members itself. This is almost certainly not the intention.