librustc: Typeck & record the count expr in TyFixedLengthVec.
libsyntax: Don't ICE on macro invocation in count expr of fixed array type.
Add pretty=typed test support to compiletest and add a test for fixed size arrays.
auto merge of #15804 : luqmana/rust/no-ice, r=kballard

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