Simplify 'go' notation
Reduce reliance on struct composition

Each of these structs have fairly complex operators and catenating all
of them together seems more confusing than it is worth.  The only loss
in clarity is probably the ultra-short field names.

Motivated by fixing a bug and noticing that some of the compositions
were not being used.
Fix race condition causing data corruption in no-parallelism fast-path

When "targetFragSize" is less than 1MB, the design of htcat is to not
parallelize the transfer, because the pieces are small enough to
mostly represent overhead on fast links.

The detailed part of this is that htcat attempts to determine the size
of a GET *and* get some work done.

The problem is that background workers could be started before
"noParallel" could call methods like "nextFragment".  The result is
that both the fast start-up special case and regular range-get workers
could race to emit data.

Fixed by ensuring that these workers never get started when one falls
into the fast-path.