[Refactoring] Separate side-effect part in TupleExp

It had been implicitly contained in `te->exps[0]`, but it wasn't flexible design.
Factoring out the part to `TupleExp::e0` will make the design and code clean
Aliasing member field will hold a pointer to the object.

This change will add another kind of nested object.