Fix bug in queue that can make one O(1) operation linear

Running out and out_r ont after another many times will copy one list
back and forth if another is empty. Change r2f and f2r to copy only
half of big list so such cases will happen more rarely.