AnnAssign with typing.List fails for all langs except Julia
After basic annassign syntax fixes with https://github.com/adsharma/py2many/pull/71, the next challenge is more typical cases such as using `typing.List` in an AnnAssign, which causes compilation problems on all languages except Julia.

```py
from typing import List

def show():
    items : List[str] = ["a", "b", "c"]
    for val in items:
    	print(val)

if __name__ == "__main__":
    show()
```

Julia happy processes `items : List[str] = ["a", "b", "c"]`

Rust error:
```rust
error: expected one of `!`, `(`, `+`, `::`, `;`, `<`, or `=`, found `[`
 --> for.rs:4:16
  |
4 | let items: List[str] = vec!["a", "b", "c"];
  |                ^ expected one of 7 possible tokens
```

dart:
```dart
  ╷
5 │ List[str] items = ["a", "b", "c"];
  │         ^
  ╵
Info: Compiling without sound null safety
cases/for.dart:5:6: Error: Getter not found: 'str'.
List[str] items = ["a", "b", "c"];
     ^^^
cases/for.dart:5:9: Error: Expected ';' after this.
List[str] items = ["a", "b", "c"];
        ^
```
etc,etc

If just using `items: List = ...` , dart and julia are happy.  But others are not.
e.g. rust
```rust
error[E0412]: cannot find type `List` in this scope
 --> for.rs:4:16
  |
4 |     let items: List = vec!["a", "b", "c"];
  |                ^^^^ not found in this scope
```