improve inference of `CPU_THREADS` in `Sys.__init__` (#54384)
Without this change, the compiler fails to notice that `env_threads isa
Int` in the fall-through case, leading to a union-split with a branch
that is in fact unreachable:
```
43 ┄ %109 = φ (#41 => %105, #42 => %108)::Union{Nothing, Int64}
│ %110 = (%109 isa Int64)::Bool
└─── goto #45 if not %110
...
45 ─ %126 = π (%109, Nothing)
│ Base.convert(Int64, %126)::Union{}
└─── unreachable
```
After this change, the union-split is eliminated.
Co-authored-by: Jeff Bezanson <jeff.bezanson@gmail.com>