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).
state = {value: 0};
      render() {
        renders++;
        return <div />;
      }
    }
    var instance = <Component />;
    expect(instance.setState).not.toBeDefined();
    instance = ReactDOM.render(instance, container);
    expect(renders).toBe(1);
    instance.setState({value: 1});
    expectDev(console.error.calls.count()).toBe(0);
    expect(renders).toBe(2);
    ReactDOM.unmountComponentAtNode(container);
    instance.setState({value: 2});
    expect(renders).toBe(2);
    expectDev(console.error.calls.count()).toBe(1);
    expectDev(console.error.calls.argsFor(0)[0]).toContain(
      'Can only update a mounted or mounting component. This usually means ' +
        'you called setState, replaceState, or forceUpdate on an unmounted ' +
        'component. This is a no-op.\n\nPlease check the code for the ' +
        'Component component.',
    );
  });
  it('should silently allow `setState`, not call cb on unmounting components', () => {
    var cbCalled = false;
    var container = document.createElement('div');
    document.body.appendChild(container);
    class Component extends React.Component {