Raise a NotFiniteNumberException instead of an Exception

It makes sense to me that wherever FSharp.Core is raising an exception due to a NaN value, it should raise the more-specific ``NotFiniteNumberException`` instead of a basic ``Exception``. Otherwise, the user and developer have essentially zero information about why the exception was raised, since the raised exception currently does not include an error message.