MSON AST

C++ implementation. For @zdne to review.

@fosrias and @honzajavorek can take a look if they want.
@pksunkara just out of curiosity – why you have  turned them into classes?