Experimental: turn most of printer's lists into arrays
Excuse the commit messages. Just a toy.
This tries to allocate as few lists as possible.
Benchmark shows that everything allocates less (kinda obvious if you think about it), but the perf isn't necessarily better for now, mostly because the printer algorithm uses little pieces of lists (now arrays) again and again. So the saving of array isn't that big.
However, if/when we convert more things to array, like comments, maybe this'll shine more.
Before:

After:

The rescript-lang/syntax repo is obsolete and will be archived soon. If this issue is still relevant, please reopen in the compiler repo (https://github.com/rescript-lang/rescript-compiler) or comment here to ask for it to be moved. Thank you for your contributions.