Solidity for multiple files and multiple contracts per file.

This line was moved and I think we already talked about exactly that topic in a previous pull request :-)
A struct type contains a list of other types which can be anything. Here, I am only interested in struct types and as they expose a more specific interface than a general type, I have to dynamic_cast them.
In principle, the `getMembers` function could be used, but that information is not available at this stage (we are currently constructing it and want to throw if there is a cyclic reference).