Go annotated assign (AnnAssign) has semantic error in generator and syntax error in output
code is 
```py
    def visit_AnnAssign(self, node):
        target = self.visit(node.target)
        type_str = self.visit(node.annotation)
        val = self.visit(node.value)
        return f"var {target} {type_str} := {2}"
```

Which injects a literal 2 irrespective of the source `val`.

Changing it to `return f"var {target} {type_str} := {val}"` doesnt fix it.  That causes `var a string := "foo"` which is invalid go syntax.

There is no test coverage for ann assignments yet.