MSON integration in API Blueprint

* Added `AttributesParser` for attributes section
* Added `DataStructuresParser` for data structures section
* Added a `preprocessNestedSections` which runs before `processNestedSections`

Logic for pre-filling named type tables is as follows:

* Loop over all nested sections under root markdown node and maintain a `contextSectionType` variable
* Get their `sectionType`. If it is `ResourceSectionType`, make sure it is not a complete action type.
* If node is `ListItem` and context is `Resource` and current is `Attributes`, fill entry in named type table
* If node is `Header`:
  * If current is `Resource` or `DataStructures`, assign them as context
  * Otherwise clear context when context is not `DataStructures` (Because named types are header nodes)
  * If context is `DataStructures`, If current is one of the other blueprint sections, clear context
  * Else fill entry in named type table.

Basically, I am storing context to precisely pick the possible named types which can occur in only two places.

I think I forgot about doing this. Do I generate a warning here if it already exists? What should happen when we are doing the actual parsing?

The case here is:

```
# Coupon [/coupon]
+ Attributes
  - name - Coupon name

# Data Structures
## Coupon
- real_name - Coupon's real name
```