engines: use Array[nullable Object] for the dynamic type of superstrings

Engines used Array[Object] but could uncheckedly put null inside.
Most engines deals correctly with this dynamic type inconstancy, but
the customization of nitgg force it only compile things that are sound.
Thus a unexpected and illegal null value broked the code.
By restoring the type consistency, nitg now works again.

See #540

Signed-off-by: Jean Privat <jean@pryen.org>
tests: update test_superstring for null

Signed-off-by: Jean Privat <jean@pryen.org>