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.
- Updates overrides that use promises
Merge pull request #536 from EricRahm/alt_impl_perf

Improve perf of createAlternanteImpl