[FEATURE ember-htmlbars-attribute-syntax] HTMLBars attributes syntax

No longer a WIP! This implements attributes according to the [rfc](https://github.com/emberjs/rfcs/pull/24).

TODO:

* [x] Sanity check
* [x] Port `bind-attr`, maybe general attribute bindings over to use descriptors
* [x] Is the name "descriptor" dumb? (yes)
* [x] Refactor toward prop-first, and boolean attrs that Just Work
* [x] Put new APIs behind FFh
* [x] Support for SVG attributes
* [x] Support for `maxlength` and other varied-reflection attributes

And this lays out a plan for some other stuff:

* [x] Update HTMLBars to use `classList`, use it here
* [x] Make `concat` happen in the `lazy` descriptor, since `class` and some others may not want it anyway
* [ ] Port view element attribute bindings to AttrNode
* [x] Assert/complete support for inline `if` inside attribute values
Seems like this requires both the attribute feature flag AND the inline-if feature flag. Our tests do not test all permutations of feature flags (only all optional on and all optional off) so it isn't an issue for normal testing, but when this goes live (on by default) the test will fail unless `inline-if` is also on.