When you forget to extend `React.Component` you get the following error:

```
TypeError: Cannot call a class as a function
    at _classCallCheck (null.js:7:99)
    at Hello (null.js:11:5)
    ...react internals...
```

[[Example](http://react.jsbin.com/?html,js,console)]

It would be nice if in dev you could do a check for `Component.prototype.render` and if it exists, provide a better warning along the lines of:

```
Warning: Using a class with a render method as a function, did you forget to extend React.Component?
``` 

I believe it would happen in [ReactCompositeComponent.js](https://github.com/facebook/react/blob/b840229286ac2a82fa49553ce793cf7b953d1845/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js#L248).
expect(moo.state.amIImmutable()).toBe(true);
    var secondState = new NotActuallyImmutable('second');
    moo._replaceState(secondState);
    expect(moo.state.str).toBe('second');
    expect(moo.state.amIImmutable()).toBe(true);
    expect(moo.state).toBe(secondState);
    moo.setState({str: 'third'});
    expect(moo.state.str).toBe('third');
    
    expect(moo.state.amIImmutable).toBe(undefined);
    
    var fifthState = new NotActuallyImmutable('fifth');
    ReactDOM.unstable_batchedUpdates(function() {
      moo.setState({str: 'fourth'});
      moo._replaceState(fifthState);
    });
    expect(moo.state).toBe(fifthState);
    
    var sixthState = new NotActuallyImmutable('sixth');
    ReactDOM.unstable_batchedUpdates(function() {
      moo._replaceState(sixthState);
      moo.setState({str: 'seventh'});
    });
    expect(moo.state.str).toBe('seventh');
    expect(moo.state.amIImmutable).toBe(undefined);
  });
  it('should not warn about unmounting during unmounting', () => {
    var container = document.createElement('div');
    var layer = document.createElement('div');
    class Component extends React.Component {