towards handling while loops that produce multiple values

* NormaliseExps: if the while loop is not on the spine, lift it out
* UnzipETups: Consider let-bound while loops to still be on the spine, so don't untuple them yet.