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.
Three reasons.

1. We might want to add some other keys to this. So, it is left as an object.
2. Why was the old `oneOf` an object instead of an array of member types? I thought there must be some reason for that.
3. Implementation-wise, this is easy for me.