This is a port of @vks's rust-num/num#296, but without the feature- toggled changes to `Float`.
All the prior `num` history is kept, so old `num-traits` tags are still valid, but future development here will be just for `num-traits`.