Don't ICE when dealing with the count expr for fixed array types in various places.

The fact that `TyFixedLengthVec` contains an `Expr` seems to have been overlooked in a couple of places causes ICE's to pop up.

Fixes #15801 (in that it no longer ICE's and just outputs an error instead)

Previously this would also ICE:
```
let _x: [u16, ..four!()];
```

where `four!()` just expanded to the literal `4`.

r? @jbclements re the macro expansion changes
r? @pcwalton re typeck changes