WGSL current parses numeric literals during lexical analysis into `double`s. This might be fine for 32-bit integers but isn't sufficient if WGSL adds 64-bit integers. We should instead pattern match on the format for numeric literals, classify them and defer the validation of literals to a later pass after type checking has been performed. This also requires handling of half floats.
<rdar://problem/100592948>