Hack in @a[1;2] / %h{"a";"b"} support

Attempts to change semilist directly or use a different rule were
breaking the build -- special-casing the behaviour in .[] and .{} is
much simpler than tracking down all the faulty uses of <semilist> and
making them all work with the change.