Issue 12212 - Static array assignment makes slice implicitly

https://issues.dlang.org/show_bug.cgi?id=12212

Directly handle static array assigments.

As a byproduct, some array literal allocation will be removed. For example:

```d
int[3] sa;
sa = [1,2,3];
// ArrayLiteralExp is changed to be typed as static array.
// Therefore it will be allocated on stack.
```