meson: add build option for reference shell
test/word: add examples from spec
test/word: remove empty arithmetic section

Arithmetic tests are located in test/arithm.sh.
shell/task/word: implement indicate error parameter operator
shell/task/word: implement assign default value parameter operator
shell/task/word: simplify apply_parameter_op
parser: recognize unspecified reserved words

References: https://github.com/emersion/mrsh/issues/103
shell/job: fix setpgid failures when monitor is enabled
parser/word: count parentheses in arithmetic words

This allows us to know when "))" is the end of the arithmetic expression or
part of it.

Closes: https://github.com/emersion/mrsh/issues/118
tilde/word: perform tilde expansion after colons in assignments

Closes: https://github.com/emersion/mrsh/issues/15
shell/word: prevent field splitting on the result of tilde expansion
shell/word: make sure tilde logname matches character set
shell/word: fix tilde expansion when mixed with quoted words
shell/task/word: don't perform tilde expansion in run_word
test/word: more tilde expansion tests
Make word functions take const params
Don't perform pathname expansion on quoted strings

Closes: https://github.com/emersion/mrsh/issues/24
shell/word: preserve AST in split_fields

Instead of converting fields to strings, keep them as words. This is necessary
for preventing pathname expansion from expanding quoted words.

References: https://github.com/emersion/mrsh/issues/24
shell/task/word: handle empty names in parameter_get_value
shell/task/word: add parameter leading hash op