Cycles: Fix wrong shading when some mesh triangle has non-finite coordinate
This is fully unpredictable for artists when one damaged object makes the whole scene to render incorrectly. This involves two main changes:
- It is not enough to check triangle bounds to be valid when building BVH. This is because triangle might have some finite vertices and some non-finite.
- We shouldn't add non-finite triangle area to the overall area for MIS.
Calculate individual curves for each shape vertex.
This avoids overlap which happens on sharp turns when simply extending the curve linearly from the center. It also simplifies the curve cache data structure.