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 :)).
@smizell I had this same confusion when I first read it. I think that is a concern that you have to map when is something a real value and when is it a sample and why. I had proposed using italics for samples as it seems more intuitive that something in italics is different. However, that then forces and extra layer of detail, which was a concern to @zdne. Frankly, I still think it is a bit of a problem around arrays.