FEAT: routines arity now pre-calculated and stored in a new `arity` field in cells header.
FIX: issue sometimes when passing an empty block to REDUCE.
FEAT: added refinements evaluation support to interpreter.

Tested ok with all function types.
FIX: stack bad layout when REDUCE is used with /into option from interpreter.
TESTS: unit tests for REDUCE and COMPOSE with refinements enabled.
FIX: chained infix expressions now correctly handled by the interpreter.
FEAT: support for run-time functions creation and evaluation with the interpreter.
FIX: changes `spec` field type in red-function! and red-routine! to avoid field corruption (was pointing on stack entries).

Missing parts for functions creation:
- spec block validity is not checked yet
- only FUNC constructor supported for now
FEAT: add minimalist function spec block validation for runtime-created functions.
FEAT: minor code factorization.
FEAT: added HAS function constructor support to the interpreter.
FEAT: added DOES function constructor to the interpreter.
FIX: regression in REFLECT when requesting the spec block of a dynamically created function.
FEAT: added a few comments for the previous commit fix.
FEAT: added FUNCTION constructor support to the interpreter.
FEAT: added /extern option support to FUNCTION for the interpreter.
FIX: chained infix expressions not returning correct value when last expression in a block (interpreter).
FEAT: added refinement! literal syntax support to tokenizer (LOAD).
FEAT: added support for path! and lit-path! to runtime lexer (LOAD).

Set-path! support is pending.
FEAT: added support for set-path! in runtime lexer (LOAD).
FIX: compiler was relying on obsolete `eval-path` function specification.