MSON AST reflecting the new specification

For @fosrias, @honzajavorek and @pksunkara to review. 
If this is being used for `Literal Value` and `Variable Type Name`, why would we need the `boolean` and `number` in the above enum? (I don't understand how `Type Name` can be an `object`, `array` or `enum`)