Also shrink queue when exactly 1/4 full.

We would previously only shrink if it was strictly less than 1/4 full. It makes
no difference at all to the amortized cost per operation (even the constant
factor there-in), but it has another subtle effect: it ensures that the
backing-array is *always* a power-of-2 in length. This (probably) wastes
slightly less space on "slop" bytes caused by the memory allocator rounding up
on the size of allocation requests. It (probably) also plays slightly nicer with
cache lines etc.
Bump the minimum queue length to 16.

It doesn't add an unreasonable amount of extra space, and it *really* cuts down
on unnecessary 8-16-8 flipflopping that otherwise occurs. For example, it cuts
the number of "resize" calls when running "go test" on this package by more than
half.