add revised mson spec

@zdne @pksunkara @honzajavorek Please review and merge when ready.

This PR restructures the spec per discussion in https://github.com/apiaryio/mson/pull/4 to progressively introduce functionality and reduce having rules span different sections. Comments in the other PR have been addressed here together with the restructuring and completion of missing definitions (hopefully :)).
I woulds say this is incorrect. The correct version should be:

```
- person (object)
    - first_name (optional)
    - first_name (fixed)
    - last_name (fixed)
    - address (object, fixed)
```