There's some tension between the user-class compiler and 'the old
way'. The user-class compiler wants to take attributes that don't
have setters and just declare them in the JS2 class. But, as a
result, these attributes _don't_ show up in initargs. Which will
screw any `construct` method that wants to look at one of these args.
('The old way' would have left these args in init args, so all
constructors are used to having to look there, er, except if they were
looking for an attribute that was declared in an LFC class, because
those would be in the instance already, not in the init args.)
The particular screw with the animation example is that animators
shove `ignoreplacement` onto their init args (so they affect their
lexical parent), but it gets plucked out into a declaration before
LzNode#construct can see it... Oy.
I'm trying to think how to fix this. It's tied up with the fact that
the compiler does not know which things have setters, but it is also
an inconsistency between LFC classes and user classes that is probably
a bad thing. It really sucks that we have this construct method that
lets a subclass mess with initargs. <bleah! />