Feature/revise spec

DO NOT MERGE. FOR DISCUSSION ONLY. @zdne @honzajavorek Please comment.

This PR updates the SPEC based on @zdne and my multiple discussions and refinements.

It also pulls in the current README with some typo fixes. 

@zdne I basically forked and update your branch for this PR into master. Would you prefer I just fork off of master and just create a branch the only adds the spec? Let me know.
It's use is to specify something closer to `final` as a structure or array that cannot be changed. For an object it means fixed properties and values (if specified) like a value object or for an array it is a fixed list of values (if specified). There is nothing in MSON apart from this ATM. The idea of MSON is that it tells you what you MAY receive. Not what you MUST for the most part w/r to properties, etc. That is, if you get something defined in MSON it is what that thing is, but you could get other stuff. That is there is nothing in MSON that specifies exclusivity apart from using `fixed`.