[SE-0258] Implement basic support for property wrapper composition.
When multiple property wrapper attributes are provided on a declaration,
compose them outside-in to form a composite property wrapper type. For
example,
@A @B @C var foo = 17
will produce
var $foo = A(initialValue: B(initialValue: C(initialValue: 17)))
and foo's getter/setter will access "foo.value.value.value".
(cherry picked from commit 82ed5e9a02a4ec8d9f5ee0d6f705cdf8b1e3d5da)
(cherry picked from commit 26f0b749047a022817a3227343d015e04ed9b501)