I've fixed the parsing of nested types in TypeTag ([this
comment](https://github.com/MystenLabs/sui/blob/main/sdk/typescript/src/signers/txn-data-serializers/type-tag-serializer.ts#L62-L63)).
Also implemented a `tagToString` function which does the oposite of
`parseFromStr` (converts `TagType` -> `string`)
NOTE: I've removed `normalizeSuiAddress` from address field parsing in
`parseFromString` because I don't think this is the right place to use
it (`0x2::sui::SUI` becomes `{ address: 0x000000...00002::sui::SUI,
...}`). Especially because the RPC should support both
https://github.com/MystenLabs/sui/pull/6777:
> For RPC requests, people should be able to pass either way as long as
it's supported by parse_sui_struct_tag.
Changes:
- fixed parsing of nested struct types
- added `parseFromString` function
- made `TypeTagParser` methods static
- exported TypeTagParser in `index.ts`
- removed `normalizeSuiAddress` from parsing struct type address field
Test plan -- added unit tests.