* Add result-or-promise (RP) exec model to interpreter (async-first).
* Add centralized table property access with fast misses.
* Update table string keys to be object map.
* Update error contexts to be more consistent and precise.
* Update evaluator to return either values or _Promises_.
* Update func calls, unary and bin operations, and expression lists.
* Update _stdlib_ to the changes and improve errors.
* Add tests to validate async control flow and error contexts.
* Add dedicated benches that isolate the _runtime_ from parsing.
In Lua, only the last expression in an argument list preserves multiple
results and all earlier expressions yield exactly one value (their first).
For example:
```
f(a(), b(), c())
```
where
```
a -> (1,2)
b -> (3,4)
c -> (5,6)
```
becomes
```
f(1, 3, 5, 6)
```
which matches Lua behaviour (tested in version 5.4).
Changes:
* Function argument lists keep multiple results only from the last
argument.
* Fixes failing truthiness tests (`true and ret_one_two()`).
Sidenote: the `truthiness_test.lua` was not called at all because of
my obvious copy/paste typo (the `arithmetical_test.lua` was called twice
instead; now fixed too and both test suites pass ok).