Before that fix:
The method...
```go
func (h *Handler) RespondToInteraction(interaction interactor.Interaction) {}
```
... would generate...
```ts
export function RespondToInteraction(arg1:number):Promise<Error>;
```
... because the `interaction` package starts with `int` and anything starting with `int` is interpreted as `number`.
* Make binding.go easier to test
* Fix non-deterministic namespace order for bindings
* Add binding tests
* Fix nested import structs, non-string map keys, and escape invalid variable names
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>