Protect better against createElement(null/undefined)

This adds an invariant to React.createElement. If we don't detect this
earlier, we end up trying to access props and hitting an "Cannot read
property 'defaultProps' of undefined" error since we're assuming `type`
is non-null.

Fixes #2607