Fix 14546 - ListItem.setInfo can handle additional types. Fixes #1456

The codegenerator can now handle typedefs - needed for String and Dictionary changes.

Make the Dictionary a template and handle String as a typedef of std::string. Apply the use to the ListItem to handle #14546. Fixes #14546