Move ReactElement and ReactPropTypes to it's own folder

ReactPropTypes are supposed to be validated on ReactElement creation. We
do double validation for legacy purposes right now, but the primary
validation should happen during creation. Not mounting.

However, you're also free to generate your own element using your own
technique. Such as inline plain JS objects.

Therefore this is decoupled from the core and should be treated as a
decoupled module.