Various altereations to numeric methods

This is part of the redesign of the numeric traits tracked in issue #4819.

Renamed:

- `Exponential::expm1` -> `Float::exp_m1`
- `Exponential::log` -> `ln`
- `Real::log_2` -> `ln_2`  (for consistency with `ln`)
- `Real::log_10` -> `ln_10` (for consistency with `ln`)

Added:

- `Signed::abs_sub` - wraps libm's `fdim` function
- `Exponential::log` - logarithm of the number with respect to an arbitrary base
- `Float::is_normal`
- `Float::classify` - returns the floating point category of the number
- `Float::ln_1p`