MSON AST

C++ implementation. For @zdne to review.

@fosrias and @honzajavorek can take a look if they want.
Minor: While perfectly legal this is harder to read especially with larger structures. Please use

```
MemberTypeContent content;
```

On a new line, it adds so much to the clarity!