Create better KeyError if hash key is missing
Add support for 1.9 named hash arguments in sprintf

We use the same parsing for 1.8 and 1.9 mode, just the regular
expression is different so the new 1.9 style is never matched by the 1.8
regexp. This makes for less duplicate code, while supporting both modes
properly.

Fixes #1627
Remove tags for passing sprintf specs
Update tags for 2.0 mode