Register NaNMath

This package defines versions of the built-in math functions which return ``NaN``s instead of throwing domain errors. There are a number of use cases for this, see JuliaLang/julia#5234. There doesn't seem to be much consensus on how to handle this in base Julia, so I'm happy to publish this package for the time being so that I can resolve a number of issues with JuMP (JuliaOpt/JuMP.jl#318 JuliaOpt/JuMP.jl#295 mlubin/ReverseDiffSparse.jl#6) and move on to other things. Note that it's not sufficient to define these locally, because we need to be able to extend the methods across modules.
@eschnett @simonbyrne @davidanthoff