Have PropTypes.shape use weak checks if it's weak

This caused issues when there would be a union of a shape checker which
did not pass, and another type which did. The shape checker would output
warnings even though the other type passed.