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).
return <div />;
      }
    }
    var instance = ReactTestUtils.renderIntoDocument(<Component />);
    instance.setState({bogus: true});
    expectDev(console.error.calls.count()).toBe(1);
    expectDev(console.error.calls.argsFor(0)[0]).toBe(
      'Warning: Component.shouldComponentUpdate(): Returned undefined instead of a ' +
        'boolean value. Make sure to return true or false.',
    );
  });
  it('should warn when componentDidUnmount method is defined', () => {
    spyOn(console, 'error');
    class Component extends React.Component {
      componentDidUnmount = () => {};
      render() {
        return <div />;
      }
    }
    ReactTestUtils.renderIntoDocument(<Component />);
    expectDev(console.error.calls.count()).toBe(1);
    expectDev(console.error.calls.argsFor(0)[0]).toBe(
      'Warning: Component has a method called ' +
        'componentDidUnmount(). But there is no such lifecycle method. ' +
        'Did you mean componentWillUnmount()?',
    );
  });
  it('should warn when defaultProps was defined as an instance property', () => {
    spyOn(console, 'error');
    class Component extends React.Component {