Optimize Deque push and unshift

Passing arguments as an object to array slice deoptimizes push and
unshift in at least V8 at present. This change rolls that call into a
loop.