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.
shell: refactor, split into multiple files
ast: assert in closed type _get() functions
shell: add basic pathname expansion
token → word
This naming makes more sense.
shell: implement tilde expansion
Tilde expansion in assignments is incomplete.
shell: full field splitting support
shell: don't split fields in double quotes
shell: implement basic field splitting