Use strings for dynamic attrname syntax

Instead of `foo.${bar}` (and all variants thereof), the syntax is now
`foo."${bar}"`. This is nice both because it's a natural extension of
the `foo."bar"` syntax we already have, and because it makes name
construction easier (`foo."bar-${baz}"`, not `foo.${"bar-${baz}"}`)

Signed-off-by: Shea Levy <shea@shealevy.com>