throw when using component/component class as mixin

throw invariant error to help people new to mixins, so that they don't get misled into trying to mixin components into another component
Introduce PropTypes.shape

This diff introduces PropType.shape which lets you type an object. PropType.object was already defined and since it isn't a function I couldn't really overload the meaning to also accept a type list. Instead of doing hackery, I decided to name it `shape`.

An example where this could be used is style:

```
  propTypes: {
    style: PropTypes.shape({
      color: PropStyle.string,
      fontSize: PropTypes.number
    })
  }
```
Add `topContextMenu` to the event dependencies for `SelectEventPlugin`
Adding 'scope' to list of standard html attributes in react

scope is used for screen readers, so it would be nice to have. Documentation here: http://www.w3.org/TR/WCAG20-TECHS/H63
Kill last remaining use of `$` in React

It's only used here, so let's just inline this and get rid of the additional module.
Also it will make people like this guy happy: https://github.com/facebook/react/issues/900

(of course he might be even more happy if he wasn't using MS TFS....but that's a much bigger diff, and not one I can write...)