Explicitly truncate/widen shift value in OptimizeVisitor::PowExp

In certain scenarios, a ^^ expression may be wider or narrower than the default tshiftcnt type (``int``).

Example:
```
foreach(i; 1..table.length - 1)
  immutable strideLength = 2 ^^ i;
```

As I've brought up in previous PRs, this kind of type punning in the front-end IR doesn't sit too well with strict type-checked backend, so adding in an explicit cast fixes tree verification ICE's I'm seeing in gdc-5.0.