WIP: Improve perf of createAlternanteImpl

- Creates return-type specific return functions that are determined at
  creation time
- Splits off promise handling to it's own function. Overrides that use promises
  must indicate so when creating the override with the usesPromise param.
Something like this might work:

```
var numArgs = Signature.getINSlots(key.substring(key.lastIndexOf(".") + 1));
…
var args = stack.splice(0-numArgs, numArgs).reverse().push(ctx);
```

Unsure if it'll be faster, though.