introduce `@as` builtin for type coercion

This commit also hooks up type coercion (previously called implicit
casting) into the result location mechanism, and additionally hooks up
variable declarations, maintaining the property that:

    var a: T = b;

is semantically equivalent to:

    var a = @as(T, b);

See #1757
2a6fbbd8fbAndrew Kelley committed on 11/8/2019, 8:57:24 PMparent6d28b28
4 files changedLine totals unavailable