
Implement kind="attributes".

The name is a little controversial so I expect opinions. My rationale:
- It's short
- No need for underscores, dashes, or camel case to separate multiple words.
- Clearly does not refer to an attribute-value. It would be easy to
think kind="attribute" means an attribute value, given the way we use
JS and CSS content kinds.

We allow strict blocks to end with quoted attribute values (foo="bar")
and valueless attributes (checked) but not unquoted (foo={$x}) to avoid
mistaken adjacency like foo={$x}checked -- foo="{$x}"checked works fine.

This also undoes some of the changes I made in http://cl/35202516. I
made the mistake there of thinking HTML_ATTRIBUTE referred to attribute
values and actually broke Soy to conform to my broken interpretation. It
may be worthwhile to rename to HTML_ATTRIBUTES like the content kind.
Sorry for being fickle here -- my previous mistake!

Also updated end-context-mismatch error messages to be more human
readable.

R=xtof,msamuel
DELTA=491  (333 added, 70 deleted, 88 changed)


Revision created by MOE tool push_codebase.
MOE_MIGRATION=5894


git-svn-id: 35241bd708fe29f1f6c7a4322d322e99ff93b95e@2335 0b95b8e8-c90f-11de-9d4f-f947ee5921c8

knutwalker/google-closure-library,knutwalker/google-closure-library