add MPFR cbrt and fallbacks for FloatingPoint, fix #4352

This fixes #4352 by adding `cbrt(x::BigFloat)`, and also provides fallback definitions for several `math.jl` functions that previously produced infinite recursions if a `FloatingPoint` type was encountered that did not have a specific implementation of the function.