Fix bug when returning multiple values using direct encoding

The encoded args need to be inserted into the return struct, not the vals.
Let cabi handle pointer types
Initialize the manglerContext.ti member

Somehow we were getting away with not doing this.
Map make, lookup, insert, delete, len