Literal and Member Type changes

There are 2 major changes to the AST here. First is the introduction of `Literal`. We have already been using this along with `Markdown` in the MSON parser. This is just making it official.

Second is the addition of a `Members` which represents a **Member Type Group** containing a collection of `Member Type`. This is needed to represent the following example:

```
- person (object)
    - One Of
        - full_name
        - Properties
            - first_name
            - last_name
```

@zdne @fosrias Please review.
minor: with a primitive