Better fix for #4366

- Instead of throwing DomainError for besselj(n, x) when
  n>typemax(Int32), call besselj(float64(n), x) instead.
- Fixes also wraparound for n<typemin(Int32).

The behavior for n::Int is now symmetric and complements the runtime
dispatch behavior for n::FloatingPoint.