Add internal `_ArrayElementType` trait.

Replace `<type>.init[0]` with new trait to increase code self documentation and avoid incorrect indexing in the case of zero-length static array.

Also replace one `typeof(*lvalueOf!T.ptr)`.

-

Before:
```D
Target.init[0].init; // some code, unsure what it does
```

After:
```D
_ArrayElementType!Target.init.init; // harmless duplication is clear now
```