parse: keep a pool of parser objects
parse: keep a pool of parser objects

Especially interesting now that the struct is bigger due to the bundled
buffer. Benchmark comparison to when we used a global buffer follows.

name                 old time/op    new time/op    delta
Parse/Whitespace-4      720ns ± 1%     668ns ± 0%   -7.32%  (p=0.000 n=6+4)
Parse/Comment-4         419ns ± 1%     364ns ± 0%  -13.02%  (p=0.002 n=6+6)
Parse/LongLit-4        1.09µs ± 1%    1.04µs ± 1%   -4.20%  (p=0.002 n=6+6)
Parse/Cmds-4           11.1µs ± 1%    10.9µs ± 1%   -1.16%  (p=0.004 n=6+6)
Parse/Quoted-4         1.33µs ± 1%    1.26µs ± 1%   -4.99%  (p=0.002 n=6+6)
Parse/NestedStmts-4    6.33µs ± 0%    6.25µs ± 1%   -1.15%  (p=0.004 n=5+6)
Parse/Clauses-4        3.95µs ± 1%    3.83µs ± 1%   -2.95%  (p=0.004 n=6+5)
Parse/Binary-4         4.03µs ± 0%    4.01µs ± 2%     ~     (p=0.459 n=5+6)
Parse/Redirect-4       3.81µs ± 2%    3.65µs ± 1%   -4.18%  (p=0.002 n=6+6)
Parse/Arithm-4         5.55µs ± 0%    5.37µs ± 1%   -3.10%  (p=0.002 n=6+6)

name                 old alloc/op   new alloc/op   delta
Parse/Whitespace-4       640B ± 0%      480B ± 0%  -25.00%  (p=0.002 n=6+6)
Parse/Comment-4          520B ± 0%      360B ± 0%  -30.77%  (p=0.002 n=6+6)
Parse/LongLit-4          760B ± 0%      600B ± 0%  -21.05%  (p=0.002 n=6+6)
Parse/Cmds-4           5.47kB ± 0%    5.31kB ± 0%   -2.92%  (p=0.002 n=6+6)
Parse/Quoted-4           904B ± 0%      744B ± 0%  -17.70%  (p=0.002 n=6+6)
Parse/NestedStmts-4    3.11kB ± 0%    2.95kB ± 0%   -5.15%  (p=0.002 n=6+6)
Parse/Clauses-4        1.83kB ± 0%    1.67kB ± 0%   -8.73%  (p=0.002 n=6+6)
Parse/Binary-4         2.72kB ± 0%    2.56kB ± 0%   -5.88%  (p=0.002 n=6+6)
Parse/Redirect-4       1.86kB ± 0%    1.70kB ± 0%   -8.58%  (p=0.002 n=6+6)
Parse/Arithm-4         1.68kB ± 0%    1.52kB ± 0%   -9.51%  (p=0.002 n=6+6)

name                 old allocs/op  new allocs/op  delta
Parse/Whitespace-4       4.00 ± 0%      3.00 ± 0%  -25.00%  (p=0.002 n=6+6)
Parse/Comment-4          6.00 ± 0%      5.00 ± 0%  -16.67%  (p=0.002 n=6+6)
Parse/LongLit-4          10.0 ± 0%       9.0 ± 0%  -10.00%  (p=0.002 n=6+6)
Parse/Cmds-4              178 ± 0%       177 ± 0%   -0.56%  (p=0.002 n=6+6)
Parse/Quoted-4           15.0 ± 0%      14.0 ± 0%   -6.67%  (p=0.002 n=6+6)
Parse/NestedStmts-4      87.0 ± 0%      86.0 ± 0%   -1.15%  (p=0.002 n=6+6)
Parse/Clauses-4          55.0 ± 0%      54.0 ± 0%   -1.82%  (p=0.002 n=6+6)
Parse/Binary-4           66.0 ± 0%      65.0 ± 0%   -1.52%  (p=0.002 n=6+6)
Parse/Redirect-4         45.0 ± 0%      44.0 ± 0%   -2.22%  (p=0.002 n=6+6)
Parse/Arithm-4           51.0 ± 0%      50.0 ± 0%   -1.96%  (p=0.002 n=6+6)

mvdan/sh,mvdan/sh,mvdan/sh,mvdan/sh