Remove custom attrs properly when setting to null

I don't think this particular codepath was exercised at all (because all the callers call deleteValueForProperty) but this fixes a bug here nonetheless.
[addons] Renamed update() directives to commands
Make EventPluginUtils clear dispatchIDs and dispatchListeners

The other dispatch utils clear these out and I found a bug where they weren't being cleared out.
I'm thinking this should probably be done in the `SyntheticEvent` constructor but at least this way it's consistent. Also, I know no one else uses `executeDispatchesInOrderStopAtTrue` except the `ResponderEventPlugin`.
Batch updates caused by handlers in multiple roots

Fixes #1227.

It seems rare that event handlers in two roots nested in the DOM will update the same component in the same tick, but if that happens, the updates should be batched together.
Add clearer invariants to composite spec mixing
fix typo in 09.4-test-utils.md
Merge pull request #1381 from marcinkwiatkowski/master

fix typo in 09.4-test-utils.md
Carry ajax error checking from step #13 forward to other ajax steps

The following steps also have an ajax function, but the 'error:' param
is gone after #13:
#14
#17
#19
#20
This may be superfluous, but it helped me find an error with something I
was doing - Namely, in my .json file, I had single line javascript
comments ("//") that I copied from the tutorial. I couldn't find the
issue on later steps, but was able to see my issue when the error
handler complained about an unexpected "/" in my file in step #13.
Add start property that is used by the <ol> tag

Property was missing
Separate performanceNow into own project
Update invalid render error message

forgot to update the message following the previous diff on rendering null.
Revamp and fix PropTypes

This uses the return value (an Error or nothing) to indicate whether a prop passes validation or not. It used to be done through calling `console.warn` as a side-effect, except this didn't work well with and `oneOfType`, which calls each validator.

The solution was to insert a `.weak` prop to each validator to suppress the warning message. This is overkill and also doesn't work well in because it increases the potential API surface. Plus, letting the validators warn it can't be easily used for logging, especially for custom validators.

So `.weak` is no longer needed: fixes https://github.com/facebook/react/issues/863.

Backward compatibility for custom validators: since they didn't return anything and directly call `console.warn` or something, this doesn't break them.

Improvements:

  - `arrayOf`, `oneOfType` and `oneOf` got better message now, since they can get hold of their validator's message and output that instead of a generic `warning: bla`.
  - More complete tests, including testing custom types and `isRequired` on everything.

Bug fixes:

  - oneOfType(...).isRequired didn't work. The workaround was to use `oneOfType(a.isRequired, b.isRequired, ...)`. This means `oneOfType(a.isRequired, b)` doesn't make sense. The new version simply makes `oneOfType(...).isRequired` possible.
  - `oneOf([true])` worked for 'true' boolean because it converted everything to string before comparing. It no longer does.
- `oneOf([true]).isRequired` didn't work.

(see #1294)
[Docs] Rendering null/false and getDOMNode.
Add tests for oneOfType with shape
Add test for isValidDescriptor

Fixes #1164.

Test Plan: grunt test
docs remove comment section
Test for correct handling of "download" attribute

These tests currently fail as there is no special treatment for this kind of
attribute.

Related: GH-1337
Support minimizable, non-boolean attributes

Fixes GH-1337
Rename CAN_BE_MINIMIZED to HAS_BOOLEANISH_VALUE
Combine valid value checks