Add PropTypes.ArrayOf and clean up ReactPropTypes.js

React.PropTypes.arrayOf can be super useful to describe a propType that should be an arrayOf(Thing).

I modified some of the PropTypes code to make it a little easier to understand and all validators now return a value.