Add Structs to Dictionary Thrift

This is almost certainly not quite right yet, although trying to do the _bare minimum_ to support structs in Dictionary. This PR doesn't allow for import, and thus I have punted on places where the struct is actually used.

EDIT: I haven't done anything about `List` yet - will add separately.
Given that the search is linear in the pattern matching anyway you can just create a list of pairs and call `collect().headOption` to find the pair and return the correct side, at least the mappings can't get out of alignment.