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 :)).
So looking at this – if I read this right, you put the mixing type (and one of type) conceptually aside from what member elements are (while I was treating them as of the same abstract concept). Correct? Is there any problem with thinking of mixin (one of) as a member element?