MSON AST reflecting the new specification

For @fosrias, @honzajavorek and @pksunkara to review. 
Are you talking about C++ implementation or The Type Definition structure in general?