binomial no longer uses Float64 internally.

Replaces the old accumulation step, using `x=*(nn::Float64, rr::Float64)`
with `x::T=div(widemul(x,nn), rr)` as suggested by @JeffBezanson.

Previously, `binomial(54,23)` computed the wrong answer. The new thresholds are:

type | arguments
--- | ---
`Int32` | (34,16)
`Int64` | (67,29)
`Int128` | (131,63)

Fix #6154.