Allow our custom propTypes to have a chain-able isRequired

This gives the prototype checks a lot more flexibility, as they can largely be used in the same way the ReactPropTypes are used.

Also cleans up a couple of small things we missed with #171