Move reading out of benchmark loops

I didn't intend for the execution benchmarks to measure the reader's
efficiency.  By reading the goal term once, outside the loop, these
benchmarks now reflect true execution times.

I added a separate benchmark for the reader so that I can measure it
independently.

True                11404 ns/op
Append             302854 ns/op
Maplist            756773 ns/op
NaiveReverse    125052750 ns/op
Read               106256 ns/op