Add BNF Grammar for valid version strings

Written in collaboration with @petermichaux

Closes #110
Improve BNF grammar

Better names, more intuitive ordering.
bnf: Simplify 'alphanumeric identifier'
bnf: Remove unused 'letters', 'non-digits'

via: @EddieGarmon
Removed trailing whitespace
Merge pull request #125 from doismellburning/remove_trailing_whitespace

Removed trailing whitespace
Add 'also' to clarify that major change may also include minor and patch changes.
Merge pull request #131 from EddieGarmon/issue-130

Add 'also' to clarify that major change may also include minor and patch...
Update semver.md

In the other part of the document the word 'SemVer' is used. I think it is a good idea to use same word in the document.
Merge pull request #140 from bessarabov/patch-1

Update semver.md
Fix wrapping of overlength line in Summary section
Merge pull request #142 from wincent/wrap-fix

Fix wrapping of overlength line in Summary section
Merge pull request #116 from isaacs/bnf

Add BNF Grammar for valid version strings
Fixed inconsistent language about how build metadata and precedence
Merge pull request #151 from toddreed/master

Fixed inconsistent language about build metadata and precedence