MSON AST reflecting the new specification

For @fosrias, @honzajavorek and @pksunkara to review. 
The `boolean`, `object`, etc.. values of enum in `Type Name` is confusing for the `name` of the `Named Type`. We can leave it as it is now (which makes the AST valid), but I think we should do something about it. I will leave it to you.