MSON AST

C++ implementation. For @zdne to review.

@fosrias and @honzajavorek can take a look if they want.
Please move all the *content structures inside their containers as they do not really make much sense without the respective type enums