Shift `ARGV` when re-running the command

In some circumstances, `ARGV.slice` may return nil. It's safer to just
do `ARGV.shift` and discard the first object in the Array, since in
the end the resulting object would still be an array.

Fixes #54, Fixes #59.