Fix issues related to spreading

Fixes #1589 and a follow-up issue reported in #1591.

The compiler would expect the wrong type when transforming a spread
argument – it would always expect the parameter type (Sequential or
Sequence) when only an Iterable type is really required, because
transformArguments will use getSequence() when it encounters a spread,
but not Sequential argument.
Fix #1593: Spreading empty (both bugs)

Issue #1593 is really two separate bugs:
* Calling a function without parameters with a *[] argument
* Creating a [*[]]
Both blow up the compiler, but for totally different reasons. This
commit fixes both, and adds a test for them as well.