Internal naming tweaks.

enqueue/dequeue were too lexicographically similar - add/remove are much easier
to distinguish when reading
Nil out removed entries from the queue buffer.

Because the entire buffer (and not just the bit between head and tail) is in
scope as far as Go's garbage collector is concerned, elements that had been
removed but not yet overwritten weren't being GCed. Now they are.